示例#1
0
    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"
示例#2
0
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")