def _draw_form(self): """ Encompasses the drawing of a form with a textual label onto the card. """ inner_layout = BoxLayout(orientation="vertical") label_layout = BoxLayout(orientation="vertical", size_hint=(1, 0.2)) self.form_label = Label(text=self.text, font_size=self.font_size, markup=True) self.form_label.color = list(self.text_color) self.form_label.valign = "top" self.form_label.halign = "left" label_layout.add_widget(self.form_label) form_layout = BoxLayout(orientation="vertical") form_layout.padding = 10 filler = None if self.form == Inputs.TEXTBOX: self.textbox = TextInput(text="", multiline=False) self.textbox.font_size = self.font_size form_layout.size_hint = (1, 0.2) form_layout.add_widget(self.textbox) filler = BoxLayout(orientation="vertical", size_hint=(1, 0.6)) elif self.form == Inputs.TEXTAREA: self.textarea = TextInput(text="") self.textarea.font_size = self.font_size form_layout.add_widget(self.textarea) elif self.form == Inputs.MULTICHOICE: self.multichoice = [] for item in self.options: button = ToggleButton(text=item) button.font_size = self.font_size form_layout.add_widget(button) self.multichoice.append(button) elif self.form == Inputs.SELECT: self.select = [] for item in self.options: button = ToggleButton(text=item, group=self.title) button.font_size = self.font_size form_layout.add_widget(button) self.select.append(button) elif self.form == Inputs.SLIDER: min_val = self.options[0] max_val = self.options[1] if len(self.options) == 3: step = self.options[2] else: step = 1 self.slider = Slider(value_track=True, min=min_val, max=max_val, step=step) self.slider_label = Label(text="0", font_size=64) self.slider.bind(value=self._slider_change) form_layout.add_widget(self.slider) form_layout.add_widget(self.slider_label) inner_layout.add_widget(label_layout) inner_layout.add_widget(form_layout) if filler: inner_layout.add_widget(filler) self.layout.add_widget(inner_layout)
def on_enter(self, *args): screen_list.append(self.name) self.ids.table.clear_widgets() saved_games = self.list_games() saved_games.sort() saved_games = saved_games[::-1] if len(saved_games) > 6: saved_games = saved_games[0:6] count = 0 for game in saved_games: game_name = game[:-4] bttn2 = ToggleButton(size_hint_y=0.3, group="g", allow_no_selection=False) bttn2.text = str(game_name) bttn2.font_size = "25sp" if count == 0: bttn2.state = "down" self.ids.table.add_widget(bttn2) count = count + 1 spaces = len(saved_games) % 2 if spaces == 1: self.ids.table.add_widget(Label(text="", size_hint_y=0.2)) y_spacing = 1 - 0.3 * ceil(len(saved_games) / 2) for itr in range(0, 2): self.ids.table.add_widget(Label(text="", size_hint_y=y_spacing))
def on_labels(self, *args, **kwargs): self.layout.clear_widgets() self.layout.size = self.layout.size[0], self.button_size for i in range(len(self.labels)): widget = ToggleButton(text=self.labels[i], group=self.group, allow_no_selection=self.allow_no_selection, state='normal') widget.font_size = self.font_size self.layout.add_widget(widget) if self.text != '': self.selected = (self.labels).index(self.text) if self.selected >= 0: self.layout.children[len(self.layout.children) - 1 - self.selected].state = 'down'