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)
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)