DirectOptionMenu, DirectSlider, DirectCheckButton
from direct.gui.DirectGuiGlobals import FLAT
from direct.gui.OnscreenText import OnscreenText
+from direct.showbase.DirectObject import DirectObject
from lib.engine.gui.cursor import MouseCursor
from game.scene import Scene
from panda3d.bullet import BulletWorld
-class Menu:
+class Menu(DirectObject):
def __init__(self, fsm, lang_mgr, opt_file, music, pipeline, scenes, fun_test):
+ super().__init__()
self._fsm = fsm
self._lang_mgr = lang_mgr
self._opt_file = opt_file
self._pipeline = pipeline
self._scenes = scenes
self._fun_test = fun_test
+ self._enforced_res = ''
self._cursor = MouseCursor(
'assets/images/buttons/arrowUpLeft.dds', (.04, 1, .04), (.5, .5, .5, 1),
(.01, .01))
del self._common_slider['clickSound']
self._set_main()
+ def enforce_res(self, val):
+ self._enforced_res = val
+ info('enforced resolution: ' + val)
+
def _set_main(self):
self._widgets = []
self._widgets += [DirectButton(
text=_('Exit'), pos=(0, 1, -.6), command=lambda: exit(),
**self._common_btn)]
self._rearrange_width()
+ self.accept('enforce_resolution', self.enforce_res)
def _set_options(self):
self._widgets = []
self._widgets += [DirectButton(
text=_('Back'), pos=(0, 1, -.8), command=self.on_back,
**self._common_btn)]
+ self.accept('enforce_resolution', self.enforce_res)
def _set_credits(self):
self._widgets = []
self._widgets += [DirectButton(
text=_('Back'), pos=(0, 1, -.8), command=self.on_back,
**self._common_btn)]
+ self.accept('enforce_resolution', self.enforce_res)
def on_play(self):
self.destroy()
self._opt_file.store()
def on_resolution(self, arg):
+ info('on resolution: %s (%s)' % (arg, self._enforced_res))
+ arg = self._enforced_res or arg
+ info('set resolution: %s' % arg)
props = WindowProperties()
props.set_size(LVector2i(*[int(_res) for _res in arg.split('x')]))
base.win.request_properties(props)
def destroy(self):
[wdg.destroy() for wdg in self._widgets]
self._cursor.destroy()
+ self.ignore('enforce_resolution')