Completed rewrite

This commit is contained in:
2022-08-28 18:47:15 -05:00
parent 0c19f61d88
commit c7550c62ec
41 changed files with 567 additions and 1211 deletions

View File

@@ -0,0 +1,3 @@
"""
Widgets module
"""

View File

@@ -0,0 +1,175 @@
# Python imports
# Lib imports
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
# Application imports
from .key import Key
############################ Left_Column Keys ############################
class Symbols_Key(Key):
def __init__(self):
super(Symbols_Key, self).__init__("Symbols", "Symbols")
def setup_signals(self):
self.connect("released", self._clicked)
def _clicked(self, widget = None):
key_columns = self.get_parent().get_parent().get_children()[1]
for row in key_columns.get_children():
for key in row:
key.emit("toggle-symbol-keys", ())
class CAPS_Key(Gtk.ToggleButton):
def __init__(self):
super(CAPS_Key, self).__init__("Caps", "Caps")
self.set_vexpand(True)
self.setup_signals()
self.show_all()
def setup_signals(self):
self.connect("clicked", self._clicked)
def _clicked(self, widget = None):
key_columns = self.get_parent().get_parent().get_children()[1]
for row in key_columns.get_children():
for key in row:
key.emit("toggle-caps", ())
############################ Right_Column Keys ############################
class Backspace_Key(Key):
def __init__(self):
super(Backspace_Key, self).__init__("Backspace", "Backspace")
def setup_signals(self):
self.connect("released", self._clicked)
def _clicked(self, widget = None):
typwriter.press_special_keys(self.get_label())
class Enter_Key(Key):
def __init__(self):
super(Enter_Key, self).__init__("Enter", "Enter")
self.setup_styling()
def setup_styling(self):
self.set_vexpand(True)
def setup_signals(self):
self.connect("released", self._clicked)
def _clicked(self, widget = None):
typwriter.press_special_keys(self.get_label())
############################ Bottom_Key_Row Keys ############################
class AT_Key(Key):
def __init__(self):
super(AT_Key, self).__init__("@", "@")
class Space_Key(Key):
def __init__(self):
super(Space_Key, self).__init__("Space", "Space")
def setup_signals(self):
self.connect("released", self._do_press_special_key)
class COM_Key(Key):
def __init__(self):
super(COM_Key, self).__init__(".com", ".com")
############################ Controls_Column Keys ############################
class Esc_Key(Key):
def __init__(self):
super(Esc_Key, self).__init__("Esc", "Esc")
def setup_signals(self):
self.connect("released", self._do_press_special_key)
class Del_Key(Key):
def __init__(self):
super(Del_Key, self).__init__("Del", "Del")
def setup_signals(self):
self.connect("released", self._do_press_special_key)
class Ctrl_Key(Key):
def __init__(self):
super(Ctrl_Key, self).__init__("Ctrl", "Ctrl")
def setup_signals(self):
self.connect("released", self._do_press_special_key)
class Shift_Key(Key):
def __init__(self):
super(Shift_Key, self).__init__("Shift", "Shift")
def setup_signals(self):
self.connect("released", self._do_press_special_key)
class Alt_Key(Key):
def __init__(self):
super(Alt_Key, self).__init__("Alt", "Alt")
def setup_signals(self):
self.connect("released", self._do_press_special_key)
class PrtSc_Key(Key):
def __init__(self):
super(PrtSc_Key, self).__init__("PrtSc", "PrtSc")
def setup_signals(self):
self.connect("released", self._do_press_special_key)
class Up_Key(Key):
def __init__(self):
super(Up_Key, self).__init__("Up", "Up")
def setup_signals(self):
self.connect("released", self._do_press_special_key)
class Down_Key(Key):
def __init__(self):
super(Down_Key, self).__init__("Down", "Down")
def setup_signals(self):
self.connect("released", self._do_press_special_key)
class Left_Key(Key):
def __init__(self):
super(Left_Key, self).__init__("Left", "Left")
def setup_signals(self):
self.connect("released", self._do_press_special_key)
class Right_Key(Key):
def __init__(self):
super(Right_Key, self).__init__("Right", "Right")
def setup_signals(self):
self.connect("released", self._do_press_special_key)

46
src/core/widgets/key.py Normal file
View File

@@ -0,0 +1,46 @@
# Python imports
# Lib imports
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
# Application imports
class Key(Gtk.Button):
def __init__(self, primary = "NULL", secondary = "NULL"):
super(Key, self).__init__()
self._primary_symbol = primary
self._secondary_symbol = secondary
self._is_upper = False
self._is_symbol = False
self.set_label(self._primary_symbol)
self.setup_signals()
def setup_signals(self):
self.connect("released", self._do_type)
self.connect("toggle-caps", self.toggle_caps)
self.connect("toggle-symbol-keys", self.toggle_symbol_keys)
def _do_type(self, widget = None):
key = self.get_label().strip()
typwriter.type(key)
def _do_press_special_key(self, widget = None):
typwriter.press_special_keys(self.get_label())
def toggle_symbol_keys(self, widget = None, eve = None):
self._is_symbol = not self._is_symbol
if self._is_symbol:
self.set_label(self._secondary_symbol)
else:
self.set_label(self._primary_symbol.upper()) if self._is_upper else self.set_label(self._primary_symbol.lower())
def toggle_caps(self, widget = None, eve = None):
self._is_upper = not self._is_upper
if not self._is_symbol:
self.set_label(self._primary_symbol.upper()) if self._is_upper else self.set_label(self._primary_symbol.lower())