ya2 · news · projects · code · about

first commit
[pmachines.git] / lib / engine / gui / imgbtn.py
1 from lib.lib.gui import Btn
2 from lib.lib.p3d.shader import load_shader
3
4
5 class ImgBtn(Btn):
6
7 def __init__(self, *args, **kwargs):
8 Btn.__init__(self, *args, **kwargs)
9 shader_dirpath = 'assets/shaders/'
10 shader = load_shader(shader_dirpath + 'filter.vert',
11 shader_dirpath + 'imgbtn.frag')
12 if shader:
13 self.set_shader(shader)
14 shader_args = [('col_offset', 0), ('enable', 1)]
15 list(map(lambda args: self.set_shader_input(*args), shader_args))
16 self.set_transparency(True)
17
18 def _on_enter(self, pos): # pos comes from mouse
19 self.set_shader_input('col_offset', .25)
20
21 def _on_exit(self, pos): # pos comes from mouse
22 self.set_shader_input('col_offset', 0)
23
24 def enable(self):
25 super().enable()
26 self.set_shader_input('enable', 1)
27
28 def disable(self):
29 super().disable()
30 self.set_shader_input('enable', .2)