ya2 · news · projects · code · about

housekeeping: ya2.utils.gui
[pmachines.git] / pmachines / gui / play_page.py
1 from ya2.utils.gui.base_page import BasePage, ButtonInfo
2
3
4 class PlayPage(BasePage):
5
6 def __init__(self, page_info, scenes, start_scene):
7 self.__scenes = scenes
8 self.__start_scene = start_scene
9 super().__init__(page_info)
10
11 def _build_widgets(self):
12 left = - (dx := .8) * (min(4, len(self.__scenes)) - 1) / 2
13 from pmachines.scene.scene import Scene
14 for i, scene_name in enumerate(self.__scenes):
15 top = .1 if len(self.__scenes) < 5 else .6
16 row = 0 if i < 4 else 1
17 i = ButtonInfo(
18 id=scene_name.lower(),
19 text=Scene.name(scene_name),
20 pos=(left + dx * (i % 4), top - dx * row),
21 command=self.__start_scene,
22 command_args=[scene_name],
23 wordwrap=6,
24 texture='assets/images/scenes/%s.dds' % scene_name,
25 size=(-2.4, 2.4, -2.4, 2.4),
26 text_scale=.64,
27 color=(1, 1, 1, .4) if Scene.is_done(scene_name) else (1, 1, 1, .8),
28 text_color=(.9, .9, .9, .4) if Scene.is_done(scene_name) else (.9, .9, .9, 1))
29 self._add_button(i, True)
30 back_button = ButtonInfo(
31 id='back',
32 text=_('Back'),
33 pos=(0, -.8),
34 command=self._set_page,
35 command_args=['main'])
36 self._add_button(back_button)