38 lines
1.8 KiB
Python
38 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()
|
|
|
|
color_scale = 255.0/65535.0
|
|
if data == self.br_color_btn:
|
|
color = data.get_color()
|
|
self.all_styles_dict[self.selected_style_id].background = ('#%02x%02x%02x' % (color.red * color_scale, color.green * color_scale, color.blue * color_scale))
|
|
elif data == self.fr_color_btn:
|
|
color = data.get_color()
|
|
self.all_styles_dict[self.selected_style_id].foreground = ('#%02x%02x%02x' % (color.red * color_scale, color.green * color_scale, color.blue * color_scale))
|
|
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()
|