aboutsummaryrefslogtreecommitdiff
path: root/src/helpers
diff options
context:
space:
mode:
authorBobby <[email protected]>2022-11-06 08:03:42 -0500
committerBobby <[email protected]>2022-11-06 08:03:42 -0500
commit2e3f84c8e402563a9c11850ad07d95f59cd43be3 (patch)
treed2b6f5b2a3ee49cd933447fb61ab2bfd1d6c1c9e /src/helpers
parent57858724265b39bc829df8eaa41d7c04aa486734 (diff)
downloadtexty-2e3f84c8e402563a9c11850ad07d95f59cd43be3.tar.xz
texty-2e3f84c8e402563a9c11850ad07d95f59cd43be3.zip
feat: window manager and file manager
Diffstat (limited to 'src/helpers')
-rw-r--r--src/helpers/managers.py (renamed from src/helpers/preferences.py)22
-rw-r--r--src/helpers/windows.py27
2 files changed, 49 insertions, 0 deletions
diff --git a/src/helpers/preferences.py b/src/helpers/managers.py
index f190eeb..518762c 100644
--- a/src/helpers/preferences.py
+++ b/src/helpers/managers.py
@@ -26,3 +26,25 @@ class PreferenceManager:
def reset(self):
self.preferences = self.DEFAULT_PREFS
self.save()
+
+
+class FileManager:
+ # keeps track of all open files and their contents
+ def __init__(self):
+ self.files = {}
+
+ def open_file(self, path):
+ # open a file and store it in the files dict
+ with open(path, "r") as f:
+ contents = f.read()
+ self.files[path] = contents
+
+ def save_file(self, path, contents):
+ # save a file
+ self.files[path] = contents
+ with open(path, "w") as f:
+ f.write(contents)
+
+ def close_file(self, path):
+ # close a file
+ del self.files[path]
diff --git a/src/helpers/windows.py b/src/helpers/windows.py
new file mode 100644
index 0000000..fc2ebbf
--- /dev/null
+++ b/src/helpers/windows.py
@@ -0,0 +1,27 @@
+import tkinter as tk
+
+
+class TextyWindow(tk.Toplevel):
+ def __init__(self, parent):
+ super().__init__(parent)
+ self.parent = parent
+ self.tabs = []
+ geometry = self.parent.get_window_geometry()
+ self.geometry(geometry)
+ self.protocol("WM_DELETE_WINDOW", self.on_close)
+
+ self.option_add("*tearOff", False)
+ self.parent.log("Tearoff disabled")
+
+ # Bind Resize, Move, and Close
+ self.bind("<Configure>", self.parent.save_prefs)
+ self.bind("<Destroy>", self.parent.save_prefs)
+ self.parent.log("Resize, Move, and Close bindings set to save preferences.")
+
+ self.config(menu=self.parent.get_menubar())
+
+ def on_close(self):
+ if self.parent.system == "aqua":
+ self.destroy()
+ else:
+ self.quit()