def _back(self) -> None: from bastd.ui.settings import controls _ba.release_gamepad_input() ba.containerwidget(edit=self._root_widget, transition='out_right') ba.app.ui.set_main_menu_window( controls.ControlsSettingsWindow( transition='in_left').get_root_widget())
def die(self) -> None: """Kill the window.""" # This strong-refs us; killing it allow us to die now. self._decrement_timer = None _ba.release_gamepad_input() if self._root_widget: ba.containerwidget(edit=self._root_widget, transition='out_scale')
def gamepad_configure_callback(event: Dict[str, Any]) -> None: """Respond to a gamepad button press during config selection.""" from ba.internal import get_remote_app_name from bastd.ui.settings import gamepad # Ignore all but button-presses. if event['type'] not in ['BUTTONDOWN', 'HATMOTION']: return _ba.release_gamepad_input() try: ba.app.ui.clear_main_menu_window(transition='out_left') except Exception: ba.print_exception('Error transitioning out main_menu_window.') ba.playsound(ba.getsound('activateBeep')) ba.playsound(ba.getsound('swish')) inputdevice = event['input_device'] assert isinstance(inputdevice, ba.InputDevice) if inputdevice.allows_configuring: ba.app.ui.set_main_menu_window( gamepad.GamepadSettingsWindow(inputdevice).get_root_widget()) else: width = 700 height = 200 button_width = 100 uiscale = ba.app.ui.uiscale dlg = (ba.containerwidget( scale=(1.7 if uiscale is ba.UIScale.SMALL else 1.4 if uiscale is ba.UIScale.MEDIUM else 1.0), size=(width, height), transition='in_right')) ba.app.ui.set_main_menu_window(dlg) device_name = inputdevice.name if device_name == 'iDevice': msg = ba.Lstr(resource='bsRemoteConfigureInAppText', subs=[('${REMOTE_APP_NAME}', get_remote_app_name())]) else: msg = ba.Lstr(resource='cantConfigureDeviceText', subs=[('${DEVICE}', device_name)]) ba.textwidget(parent=dlg, position=(0, height - 80), size=(width, 25), text=msg, scale=0.8, h_align='center', v_align='top') def _ok() -> None: from bastd.ui.settings import controls ba.containerwidget(edit=dlg, transition='out_right') ba.app.ui.set_main_menu_window( controls.ControlsSettingsWindow( transition='in_left').get_root_widget()) ba.buttonwidget(parent=dlg, position=((width - button_width) / 2, 20), size=(button_width, 60), label=ba.Lstr(resource='okText'), on_activate_call=_ok)