Beispiel #1
0
    def __init__(self,
                 name,
                 back,
                 next_page,
                 page_data,
                 no_pages=False,
                 **kwargs):
        super(Window, self).__init__(**kwargs)
        self.app = App.get_running_app()
        self.no_pages = no_pages

        if no_pages:
            self.add_page()

        else:
            self.name = name
            self.back = back
            self.next_page = next_page
            self.page_data = page_data
            utils.windows.append(self)
        layout = MDBoxLayout(orientation='vertical')
        layout.add_widget(Header(self))
        layout.add_widget(MainLayout(self))
        layout.add_widget(Label())

        # layout containing all the navigation buttons
        buttons_layout = MDBoxLayout()
        buttons_layout.orientation = 'horizontal'
        buttons_layout.adaptive_height = True
        buttons_layout.adaptive_width = True
        buttons_layout.padding = 0, 0, 0, 5

        # layout for back button
        back_layout = MDBoxLayout()
        back_layout.orientation = 'vertical'
        back_layout.adaptive_height = True
        back_layout.adaptive_width = True
        button_back = MDIconButton(icon="arrow-left",
                                   pos_hint={
                                       "center_x": 0.5,
                                       "center_y": 0.5
                                   },
                                   user_font_size=30)
        button_back.bind(on_release=self.btn_back_press)
        back_layout.add_widget(button_back)
        back_layout.add_widget(
            MDLabel(text="Back",
                    font_size=8,
                    theme_text_color="Primary",
                    halign='center'))
        buttons_layout.add_widget(back_layout)

        # next button layout
        next_layout = MDBoxLayout()
        next_layout.orientation = 'vertical'
        next_layout.adaptive_height = True
        next_layout.adaptive_width = True
        button_next = MDIconButton(icon="arrow-right",
                                   pos_hint={
                                       "center_x": 0.5,
                                       "center_y": 0.5
                                   },
                                   user_font_size=30)
        button_next.bind(on_release=self.btn_next_press)
        next_layout.add_widget(button_next)
        next_layout.add_widget(
            MDLabel(text="Next",
                    font_size=8,
                    theme_text_color="Primary",
                    halign='center'))
        buttons_layout.add_widget(next_layout)

        # add button layout
        add_layout = MDBoxLayout()
        add_layout.orientation = 'vertical'
        add_layout.adaptive_height = True
        add_layout.adaptive_width = True
        button_add = MDIconButton(icon="plus",
                                  pos_hint={
                                      "center_x": 0.5,
                                      "center_y": 0.5
                                  },
                                  user_font_size=30)
        button_add.bind(on_release=self.add_page)
        add_layout.add_widget(button_add)
        add_layout.add_widget(
            MDLabel(text="Add",
                    font_size=8,
                    theme_text_color="Primary",
                    halign='center'))
        buttons_layout.add_widget(add_layout)
        layout2 = MDBoxLayout(orientation='horizontal',
                              size_hint_y=None,
                              height=dp(button_back.height + 8),
                              padding=dp(10))

        layout2.md_bg_color = get_color_from_hex(
            colors[self.app.theme_cls.theme_style]["CardsDialogs"])

        self.menu_button = MenuIconTextButton('menu', 'Menu')
        layout2.add_widget(self.menu_button)

        # menu separator
        separator = VerticalSeparator()
        utils.separators.append(separator)
        layout2.add_widget(separator)

        home_button = MenuIconTextButton('home', 'Home')
        self.home_button = home_button
        layout2.add_widget(home_button)

        # second separator
        separator = VerticalSeparator()
        utils.separators.append(separator)
        layout2.add_widget(separator)

        export_button = MenuIconTextButton('folder-upload-outline', 'Export')
        export_button.bind(on_release=self.export_project)
        export_button.icon_button.bind(on_release=self.export_project)
        layout2.add_widget(export_button)

        # third separator
        separator = VerticalSeparator()
        utils.separators.append(separator)
        layout2.add_widget(separator)

        # import button to import projects
        import_button = MenuIconTextButton('folder-download-outline', "Import")
        import_button.bind(on_release=self.app.import_btn_bind)
        import_button.icon_button.bind(on_release=self.app.import_btn_bind)
        layout2.add_widget(import_button)

        layout2.add_widget(Label())

        layout2.add_widget(buttons_layout)

        utils.bottom_banners.append(layout2)
        layout.add_widget(layout2)
        self.add_widget(layout)
Beispiel #2
0
    def __init__(self, manager, screen_name, **kwargs):
        """
        Creates page layout, consists of a layout containing HomeSelectPage and a layout created the
        same as the MenuLayout in each project page, HomeMenu class is not used

        :param manager: screen manager
        :param screen_name: str
        :param kwargs:
        """
        super(Screen, self).__init__(**kwargs)
        self.name = screen_name
        self.app = App.get_running_app()
        self.home_select_page = HomeSelectPage(manager)
        self.home_menu = HomeMenu()

        # screen layout
        layout = MDBoxLayout(orientation='vertical')
        layout.add_widget(self.home_select_page)

        # add button layout
        add_layout = MDBoxLayout()
        add_layout.padding = 0, 0, 0, dp(5)
        add_layout.orientation = 'vertical'
        add_layout.adaptive_height = True
        add_layout.adaptive_width = True
        button_add = MDIconButton(icon="plus",
                                  pos_hint={
                                      "center_x": 0.5,
                                      "center_y": 0.9
                                  },
                                  user_font_size=30)

        # binds button press to add new page
        button_add.bind(on_release=self.add_page_from_home)
        add_layout.add_widget(button_add)
        add_layout.add_widget(
            MDLabel(text="Add",
                    font_size=8,
                    theme_text_color="Primary",
                    halign='center'))

        # bottom banner layout
        layout2 = MDBoxLayout(orientation='horizontal',
                              size_hint_y=None,
                              height=dp(button_add.height + 8),
                              padding=dp(10))

        # menu hamburger button and menu label
        menu_button = MenuIconTextButton('menu', "Menu")
        menu_button.bind(on_release=self.app.menu_btn_bind)
        menu_button.icon_button.bind(on_release=self.app.menu_btn_bind)
        layout2.add_widget(menu_button)

        # separator
        separator = MDBoxLayout(size_hint_x=None,
                                width=dp(1),
                                md_bg_color=self.app.theme_cls.primary_light)
        utils.separators.append(separator)
        layout2.add_widget(separator)

        # import button to import projects
        import_button = MenuIconTextButton('folder-download-outline', "Import")
        import_button.bind(on_release=self.app.import_btn_bind)
        import_button.icon_button.bind(on_release=self.app.import_btn_bind)
        layout2.add_widget(import_button)

        # debug button
        # layout2.add_widget(MDRaisedButton(text="DEBUG", on_release=partial(print, utils.data, "\n", utils.windows,
        #                                                                    self.test)))

        layout2.md_bg_color = get_color_from_hex(
            colors[self.app.theme_cls.theme_style]["CardsDialogs"])

        # spacer label
        layout2.add_widget(Label())

        layout2.add_widget(add_layout)
        layout.add_widget(layout2)

        utils.bottom_banners.append(layout2)

        self.add_widget(layout)