diff options
Diffstat (limited to 'src/texty.py')
| -rw-r--r-- | src/texty.py | 46 |
1 files changed, 37 insertions, 9 deletions
diff --git a/src/texty.py b/src/texty.py index 26626ed..3b043e5 100644 --- a/src/texty.py +++ b/src/texty.py @@ -8,7 +8,7 @@ import tkinter as tk import click -from config.defaults import DEFAULT_PREFS, PREFERENCES_FILE +from config.defaults import DEFAULT_PREFS, KEYBINDS, MAC_KEYBINDS, PREFERENCES_FILE from helpers.preferences import PreferenceManager logging.basicConfig(stream=sys.stdout, level=logging.DEBUG) @@ -20,23 +20,28 @@ class Texty(tk.Tk): self.title("Texty") self.debug = debug self.prefs = PreferenceManager(DEFAULT_PREFS, PREFERENCES_FILE) - - if self.debug: - logging.info("Running in debug mode. Preferences will not be saved.") - self.prefs.reset() - self.set_geometry() self.protocol("WM_DELETE_WINDOW", self.on_close) self.system = self.call("tk", "windowingsystem") - if self.system == "aqua": - self.option_add("*tearOff", False) + self.log("Running Texty on %s" % self.system) + + self.option_add("*tearOff", False) + self.log("Tearoff disabled") # Bind Resize, Move, and Close self.bind("<Configure>", self.save_prefs) self.bind("<Destroy>", self.save_prefs) + self.log("Resize, Move, and Close bindings set to save preferences.") + + # Set Geometry + self.set_geometry() # Create Menu Bar self.bind_menu() + def log(self, message): + if self.debug: + logging.info(message) + def set_geometry(self): width = self.prefs.get("width") height = self.prefs.get("height") @@ -51,6 +56,9 @@ class Texty(tk.Tk): else self.prefs.get("y_pos") ) self.geometry(f"{width}x{height}+{x_pos}+{y_pos}") + self.log( + "Window geometry set to {}x{}+{}+{}".format(width, height, x_pos, y_pos) + ) def save_prefs(self, event): if not self.debug: @@ -61,7 +69,25 @@ class Texty(tk.Tk): self.prefs.save() def bind_menu(self): - pass + menubar = tk.Menu(self) + + meta = "Command" if self.system == "aqua" else "Control" + keybinds = {k: v.replace("meta", meta) for k, v in KEYBINDS.items()} + mac_keybinds = {k: v.replace("meta", meta) for k, v in MAC_KEYBINDS.items()} + self.log("Keybinds set to %s" % keybinds) + + if self.system == "aqua": + self.log("MacOS detected, Additional Keybinds set to %s" % mac_keybinds) + appmenu = tk.Menu(menubar, name="apple") + menubar.add_cascade(menu=appmenu) + appmenu.add_command(label="About Texty") + appmenu.add_separator() + self.createcommand("tk::mac::ShowPreferences", self.show_preferences) + + self.config(menu=menubar) + + def show_preferences(self): + print("Show Preferences") def on_close(self): if self.system == "aqua": @@ -73,6 +99,8 @@ class Texty(tk.Tk): @click.command() @click.option("--debug", is_flag=True, help="Enable debug mode.") def main(debug): + if debug: + logging.info("Running in debug mode. Preferences will not be saved.") texty = Texty(debug=debug) texty.protocol("WM_DELETE_WINDOW", texty.on_close) texty.mainloop() |
