def __init__(self, drawer, greeting, **kwargs): # Init Screen manager super(ScreenManager, self).__init__(**kwargs) # Parent drawer self.drawer = drawer # Animation self.transition_slide_up = SlideTransition(direction="up") self.transition_slide_down = SlideTransition(direction="down") self.transition_slide_right = SlideTransition(direction="right") self.transition_slide_left = SlideTransition(direction="left") # Console screen self.console_screen = ConsoleScreen( greeting=greeting, goto_inputscreen=self.goto_input_screen, name="console" ) # About app info screen self.about_screen = AboutScreen(name="about") # Text input screen self.input_screen = InputScreen( goto_consolescreen=self.goto_console_screen, name="input" ) # Add console - GUI hooks self.inputtext_gui_hook = self.console_screen.console_window.inputtext_gui_hook self.getmaxwidth_gui_hook = self.console_screen.console_window.getmaxwidth_gui_hook self.cleardisplay_gui_hook = self.console_screen.console_window.cleardisplay_gui_hook self.cmdprog_gui_hook = self.console_screen.console_window.cmdprog_gui_hook self.focus_input_gui_hook = self.input_screen.console_input.focus_input_box self.unfocus_input_gui_hook = self.input_screen.console_input.unfocus_input_box # Add console screen widget to main screen manager self.add_widget(self.console_screen) # Add about screen self.add_widget(self.about_screen) # Add input screen self.add_widget(self.input_screen) # Default screen self.current = "console"
class MainPanel(ScreenManager): def __init__(self, drawer, greeting, **kwargs): # Init Screen manager super(ScreenManager, self).__init__(**kwargs) # Parent drawer self.drawer = drawer # Animation self.transition_slide_up = SlideTransition(direction="up") self.transition_slide_down = SlideTransition(direction="down") self.transition_slide_right = SlideTransition(direction="right") self.transition_slide_left = SlideTransition(direction="left") # Console screen self.console_screen = ConsoleScreen( greeting=greeting, goto_inputscreen=self.goto_input_screen, name="console" ) # About app info screen self.about_screen = AboutScreen(name="about") # Text input screen self.input_screen = InputScreen( goto_consolescreen=self.goto_console_screen, name="input" ) # Add console - GUI hooks self.inputtext_gui_hook = self.console_screen.console_window.inputtext_gui_hook self.getmaxwidth_gui_hook = self.console_screen.console_window.getmaxwidth_gui_hook self.cleardisplay_gui_hook = self.console_screen.console_window.cleardisplay_gui_hook self.cmdprog_gui_hook = self.console_screen.console_window.cmdprog_gui_hook self.focus_input_gui_hook = self.input_screen.console_input.focus_input_box self.unfocus_input_gui_hook = self.input_screen.console_input.unfocus_input_box # Add console screen widget to main screen manager self.add_widget(self.console_screen) # Add about screen self.add_widget(self.about_screen) # Add input screen self.add_widget(self.input_screen) # Default screen self.current = "console" def register_handleinput_cmd_hook(self, hook): if not (constants.PLATFORM_ANDROID or constants.ENABLE_INPUT_SCREEN): self.console_screen.console_window.console_input.register_handleinput_cmd_hook(hook) else: self.input_screen.register_handleinput_cmd_hook(hook) def register_getcommands_cmd_hook(self, hook): if not (constants.PLATFORM_ANDROID or constants.ENABLE_INPUT_SCREEN): self.console_screen.console_window.console_input.register_getcommands_cmd_hook(hook) else: self.input_screen.register_getcommands_cmd_hook(hook) def goto_console_screen(self): self.close_navbar() self.unfocus_input_gui_hook() self.transition = self.transition_slide_down self.current = "console" def goto_about_screen(self): self.close_navbar() self.unfocus_input_gui_hook() self.transition = self.transition_slide_up self.current = "about" def goto_input_screen(self): self.close_navbar() self.transition = self.transition_slide_down self.current = "input" self.focus_input_gui_hook() def is_console_focused(self): return self.current == "console" def close_navbar(self): if self.drawer: if self.drawer.state == "open": self.drawer.anim_to_state("closed")