diff options
| author | Bobby <[email protected]> | 2022-11-06 08:03:42 -0500 |
|---|---|---|
| committer | Bobby <[email protected]> | 2022-11-06 08:03:42 -0500 |
| commit | 2e3f84c8e402563a9c11850ad07d95f59cd43be3 (patch) | |
| tree | d2b6f5b2a3ee49cd933447fb61ab2bfd1d6c1c9e /src/helpers | |
| parent | 57858724265b39bc829df8eaa41d7c04aa486734 (diff) | |
| download | texty-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.py | 27 |
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() |
