def __init__(self) -> None: self._width = 650 self._height = 380 self._spacing = 40 self._r = 'configTouchscreenWindow' _ba.set_touchscreen_editing(True) uiscale = ba.app.ui.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), transition='in_right', scale=(1.9 if uiscale is ba.UIScale.SMALL else 1.55 if uiscale is ba.UIScale.MEDIUM else 1.2))) btn = ba.buttonwidget(parent=self._root_widget, position=(55, self._height - 60), size=(120, 60), label=ba.Lstr(resource='backText'), button_type='back', scale=0.8, on_activate_call=self._back) ba.containerwidget(edit=self._root_widget, cancel_button=btn) ba.textwidget(parent=self._root_widget, position=(25, self._height - 50), size=(self._width, 25), text=ba.Lstr(resource=self._r + '.titleText'), color=ba.app.ui.title_color, maxwidth=280, h_align='center', v_align='center') ba.buttonwidget(edit=btn, button_type='backSmall', size=(60, 60), label=ba.charstr(ba.SpecialChar.BACK)) self._scroll_width = self._width - 100 self._scroll_height = self._height - 110 self._sub_width = self._scroll_width - 20 self._sub_height = 360 self._scrollwidget = ba.scrollwidget( parent=self._root_widget, position=((self._width - self._scroll_width) * 0.5, self._height - 65 - self._scroll_height), size=(self._scroll_width, self._scroll_height), claims_left_right=True, claims_tab=True, selection_loops_to_parent=True) self._subcontainer = ba.containerwidget(parent=self._scrollwidget, size=(self._sub_width, self._sub_height), background=False, claims_left_right=True, claims_tab=True, selection_loops_to_parent=True) self._build_gui()
def __del__(self) -> None: # Note - this happens in 'back' too; # we just do it here too in case the window is closed by other means. # FIXME: Could switch to a UI destroy callback now that those are a # thing that exists. _ba.set_touchscreen_editing(False)
def _back(self) -> None: from bastd.ui.settings import controls ba.containerwidget(edit=self._root_widget, transition='out_right') ba.app.ui.set_main_menu_window( controls.ControlsSettingsWindow( transition='in_left').get_root_widget()) _ba.set_touchscreen_editing(False)