diff options
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() |
