Renamed utiols folder; fixed widget error on start; Symbols logic fix

This commit is contained in:
2024-02-28 21:27:13 -06:00
parent a3496263b9
commit d073282c66
27 changed files with 288 additions and 114 deletions

View File

@@ -21,6 +21,8 @@ class Keys_Column(Gtk.Box):
super(Keys_Column, self).__init__()
self.setup_styling()
self.setup_signals()
self.setup_custom_signals()
self.setup_key_buttons()
self.show_all()
@@ -31,6 +33,16 @@ class Keys_Column(Gtk.Box):
self.set_property("homogeneous", True)
self.set_hexpand(True)
def setup_signals(self):
self.connect("button-release-event", self._on_button_release_event)
def setup_custom_signals(self):
event_system.subscribe("itterate_mode", self.itterate_mode)
def _on_button_release_event(self, widget = None, eve = None):
if eve.button == 3: # NOTE: right-click
event_system.emit_and_await("itterate_mode")
def setup_key_buttons(self):
keys = keys_set["keys"]
children = keys.keys()
@@ -57,3 +69,15 @@ class Keys_Column(Gtk.Box):
self.add(row_box)
return row_box
def itterate_mode(self):
emoji_view_shown = event_system.emit_and_await("is_emoji_view_shown")
is_symbols_enabled = event_system.emit_and_await("is_symbols_enabled")
if not is_symbols_enabled and not emoji_view_shown:
event_system.emit("toggle_symbol_keys")
elif is_symbols_enabled and not emoji_view_shown:
event_system.emit("show_emoji_view")
elif is_symbols_enabled and emoji_view_shown:
event_system.emit("hide_emoji_view")
event_system.emit("toggle_symbol_keys")

View File

@@ -15,26 +15,14 @@ from .key import Key
class Esc_Key(Key):
def __init__(self):
super(Esc_Key, self).__init__("Esc", "Esc", iscontrol=True)
super(Esc_Key, self).__init__("Esc", "Esc", iscontrol = True)
def setup_signals(self):
self.connect("released", self._do_press_special_key)
class Symbols_Key(Key):
def __init__(self):
super(Symbols_Key, self).__init__("Symbols", "Symbols", iscontrol=True)
def setup_signals(self):
self.connect("released", self._clicked)
def _clicked(self, widget = None):
ctx = widget.get_style_context()
ctx.remove_class("toggled_bttn") if ctx.has_class("toggled_bttn") else ctx.add_class("toggled_bttn")
event_system.emit("toggle_symbol_keys")
class CAPS_Key(Key):
def __init__(self):
super(CAPS_Key, self).__init__("Caps", "Caps", iscontrol=True)
super(CAPS_Key, self).__init__("Caps", "Caps", iscontrol = True)
self.setup_styling()
self.show_all()
@@ -80,8 +68,26 @@ class Emoji_Key(Key):
def unset_selected(self, widget = None):
self._ctx.remove_class("toggled_bttn")
class Symbols_Key(Key):
def __init__(self):
super(Symbols_Key, self).__init__("Symbols", "Symbols", iscontrol = True)
self.setup_custom_signals()
def setup_signals(self):
self.connect("released", self._clicked)
def setup_custom_signals(self):
event_system.subscribe("is_symbols_enabled", self.is_symbols_enabled)
event_system.subscribe("toggle_symbol_keys", self.toggle_symbol_keys)
def _clicked(self, widget = None):
ctx = widget.get_style_context()
ctx.remove_class("toggled_bttn") if ctx.has_class("toggled_bttn") else ctx.add_class("toggled_bttn")
event_system.emit("toggle_symbol_keys")
def is_symbols_enabled(self):
ctx = self.get_style_context()
return True if ctx.has_class("toggled_bttn") else False
class Enter_Key(Key):
def __init__(self):

View File

@@ -49,12 +49,16 @@ class Emoji_Notebook(Gtk.Notebook):
for group in emoji_grouping:
tab_widget = Gtk.Label(label=group)
scroll, grid = self.create_scroll_and_grid()
self.append_page(scroll, tab_widget)
self.set_tab_reorderable(scroll, False)
self.set_tab_detachable(scroll, False)
top = 0
left = 0
for emoji in emoji_grouping[group]:
key = Key(emoji["emoji"], emoji["emoji"])
key._is_emoji = True
key.show()
grid.attach(key, left, top, width, height)
left += 1
@@ -62,9 +66,6 @@ class Emoji_Notebook(Gtk.Notebook):
left = 0
top += 1
self.append_page(scroll, tab_widget)
self.set_tab_reorderable(scroll, False)
self.set_tab_detachable(scroll, False)
def create_scroll_and_grid(self):
scroll = Gtk.ScrolledWindow()
@@ -83,8 +84,9 @@ class Emoji_Popover(Gtk.Popover):
emoji_notebook = Emoji_Notebook()
self.add(emoji_notebook)
self.set_default_widget(emoji_notebook)
self.setup_styling()
self.setup_signals()
self.setup_custom_signals()
self._emoji_key = None
@@ -94,8 +96,22 @@ class Emoji_Popover(Gtk.Popover):
self.set_size_request(480, 280)
def setup_signals(self):
self.connect("closed", self._emoji_key.unset_selected)
...
def setup_custom_signals(self):
event_system.subscribe("is_emoji_view_shown", self.is_emoji_view_shown)
event_system.subscribe("show_emoji_view", self.show_emoji_view)
event_system.subscribe("hide_emoji_view", self.hide_emoji_view)
def set_parent_key(self, emoji_key):
self._emoji_key = emoji_key
self.setup_signals()
def is_emoji_view_shown(self):
return self.is_visible()
def show_emoji_view(self):
self.popup()
def hide_emoji_view(self):
self.popdown()

View File

@@ -67,3 +67,6 @@ class Window(SignalsMixin, Gtk.ApplicationWindow):
cr.set_operator(cairo.OPERATOR_SOURCE)
cr.paint()
cr.set_operator(cairo.OPERATOR_OVER)
def main(self):
Gtk.main()