GtkCodeThemer/src/core/mixins/signals/main_signals_mixin.py

44 lines
1.8 KiB
Python

# Python imports
# Lib imports
# Application imports
from utils.style_properties import StyleProperties
from .widget_signals.list_signals_mixin import ListSignalsMixin
from .widget_signals.tggle_and_check_box_signals_mixin import TggleAndCheckBoxSignals
from .widget_signals.sourceview_signals_mixin import SourceviewSignalsMixin
from .widget_signals.dialog_signals_mixin import DialogSignalsMixin
class MainSignalsMixin(ListSignalsMixin, TggleAndCheckBoxSignals, SourceviewSignalsMixin, DialogSignalsMixin):
def on_style_changed(self, data):
if self.selected_style_id not in self.all_styles_dict:
self.all_styles_dict[self.selected_style_id] = StyleProperties()
if data == self.br_color_btn:
self.all_styles_dict[self.selected_style_id].background = self.get_hex(data)
elif data == self.fr_color_btn:
self.all_styles_dict[self.selected_style_id].foreground = self.get_hex(data)
elif data == self.bold_tggle_btn:
self.all_styles_dict[self.selected_style_id].bold = data.get_active()
elif data == self.italic_tggle_btn:
self.all_styles_dict[self.selected_style_id].italic = data.get_active()
elif data == self.underline_tggle_btn:
self.all_styles_dict[self.selected_style_id].underline = data.get_active()
elif data == self.strikethrough_tggle_btn:
self.all_styles_dict[self.selected_style_id].strikethrough = data.get_active()
self.update_sample_view()
def get_hex(self, data):
color_scale = 255.0 / 65535.0
color = data.get_color()
red = color.red * color_scale
green = color.green * color_scale
blue = color.blue * color_scale
return ('#%02x%02x%02x' % (int(red), int(green), int(blue)))