def _on_option(self, option): self.ids.screens.current = option for name in self.buttons.keys(): button = self.buttons[name] if name == option: button.tile_color = ColorScheme.get_accent() else: button.tile_color = ColorScheme.get_dark_accent()
def add_options_screen(self, screen, button): screen.bind(on_screen_modified=self.on_modified) self.ids.screens.add_widget(screen) button.bind(on_press=lambda x: self._on_option(screen.name)) self.ids.options.add_widget(button) button.tile_color = ColorScheme.get_dark_accent() \ if len(self.buttons.values()) > 0 else \ ColorScheme.get_accent() self.buttons[screen.name] = button
def on_mouse_pos(self, *args): pos = args[1] if self.pulsing: return if self.collide_point(*self.to_widget(*pos)): if not self.disabled: self.tile_color = ColorScheme.get_medium_accent() else: self.tile_color = ColorScheme.get_dark_accent()
class LabelIconButton(FadeableWidget, ButtonBehavior, AnchorLayout): title_font = StringProperty('resource/fonts/ASL_regular.ttf') title_font_size = NumericProperty(sp(20)) tile_color = ObjectProperty(ColorScheme.get_dark_accent()) icon_color = ObjectProperty(ColorScheme.get_accent()) title_color = ObjectProperty(ColorScheme.get_accent()) icon = StringProperty('') icon_size = NumericProperty(sp(25)) title = StringProperty('') def __init__(self, **kwargs): super(LabelIconButton, self).__init__(**kwargs) Window.bind(mouse_pos=self.on_mouse_pos) def on_tile_color(self, instance, value): self.fade_color = value def on_mouse_pos(self, *args): pos = args[1] if self.pulsing: return if self.collide_point(*self.to_widget(*pos)): if not self.disabled: self.tile_color = ColorScheme.get_medium_accent() else: self.tile_color = ColorScheme.get_dark_accent() def on_press(self, *args): super(LabelIconButton, self).on_press(*args) if not self.disabled and not self.pulsing: self.tile_color = ColorScheme.get_medium_accent() def on_release(self, *args): super(LabelIconButton, self).on_release(*args) if not self.pulsing: self.tile_color = ColorScheme.get_dark_accent() def on_fade_color(self, instance, value): self.tile_color = value def on_pulsing(self, instance, value): self.tile_color = ColorScheme.get_medium_accent() super(LabelIconButton, self).on_pulsing(instance, value) def on_disabled(self, instance, value): super(LabelIconButton, self).on_disabled(instance, value) self.tile_color = ColorScheme.get_medium_accent()
class FeatureButton(TileIconButton): Builder.load_string(""" <FeatureButton> title_font: 'resource/fonts/ASL_regular.ttf' icon_color: (0.0, 0.0, 0.0, 1.0) title_color: (0.2, 0.2, 0.2, 1.0) line_width: 5 """) disabled_color = ListProperty(ColorScheme.get_dark_accent()) highlight_color = ListProperty(ColorScheme.get_medium_accent()) def __init__(self, **kwargs): super(FeatureButton, self).__init__(**kwargs) self.tile_color = (1.0, 1.0, 1.0, 1.0) Window.bind(mouse_pos=self.on_mouse_pos) def on_mouse_pos(self, *args): pos = args[1] if self.pulsing: return if self.collide_point(*self.to_widget(*pos)): if not self.disabled: self.tile_color = self.highlight_color else: self.tile_color = self.disabled_color def on_press(self, *args): super(FeatureButton, self).on_press(*args) if not self.disabled and not self.pulsing: self.tile_color = self.highlight_color def on_release(self, *args): super(FeatureButton, self).on_release(*args) if not self.pulsing: self.tile_color = self.disabled_color def on_fade_color(self, instance, value): self.tile_color = value def on_pulsing(self, instance, value): self.tile_color = self.highlight_color super(FeatureButton, self).on_pulsing(instance, value) def on_disabled(self, instance, value): super(FeatureButton, self).on_disabled(instance, value) self.tile_color = self.disabled_color
def on_release(self, *args): super(LabelIconButton, self).on_release(*args) if not self.pulsing: self.tile_color = ColorScheme.get_dark_accent()