diff options
| author | Bobby <[email protected]> | 2022-11-06 10:12:55 -0500 |
|---|---|---|
| committer | Bobby <[email protected]> | 2022-11-06 10:12:55 -0500 |
| commit | afb29a0c8325ace3eccc53ff2bd5a41004dc1fd6 (patch) | |
| tree | ff09521a8d48d30ade590fc2c67131bcbee8f296 /src/helpers/windows.py | |
| parent | 54cac2ebde7369400816c5f118b6dc7210dceb6d (diff) | |
| download | texty-afb29a0c8325ace3eccc53ff2bd5a41004dc1fd6.tar.xz texty-afb29a0c8325ace3eccc53ff2bd5a41004dc1fd6.zip | |
feat: basic text editor with toolbar
Diffstat (limited to 'src/helpers/windows.py')
| -rw-r--r-- | src/helpers/windows.py | 135 |
1 files changed, 122 insertions, 13 deletions
diff --git a/src/helpers/windows.py b/src/helpers/windows.py index 3ed578e..e4dce01 100644 --- a/src/helpers/windows.py +++ b/src/helpers/windows.py @@ -1,7 +1,7 @@ -import os import tkinter as tk -from config.defaults import ICONS_FOLDER +from idlelib.tooltip import Hovertip +from tkmacosx import Button class TextyWindow(tk.Toplevel): @@ -22,26 +22,135 @@ class TextyWindow(tk.Toplevel): self.parent.log("Resize, Move, and Close bindings set to save preferences.") self.config(menu=self.parent.get_menubar()) - self.set_toolbar() + self.draw_layout() def on_close(self): self.parent.destroy_window(self) def draw_layout(self): self.parent.log("Drawing layout") + self.set_toolbar() + + self.parent.log("Drawing Text Editor") + self.text = tk.Text( + self, + undo=True, + autoseparators=True, + maxundo=-1, + wrap=tk.WORD, + font=("Menlo", 12), + borderwidth=0, + highlightthickness=0, + ) + self.text.pack(side=tk.TOP, fill=tk.BOTH, expand=True) + self.text.focus_set() def set_toolbar(self): self.parent.log("Drawing Toolbar") + background_color = "#303030" if self.parent.theme == "dark" else "#f0f0f0" + foreground_color = "#f0f0f0" if self.parent.theme == "dark" else "#303030" + + toolbar = tk.Frame(self, bd=1, relief=tk.RAISED, bg=background_color) + toolbar.pack(side=tk.TOP, fill=tk.X) + + self.parent.log("Drawing Action Buttons") + self.draw_action_buttons(toolbar, background_color, foreground_color) + + def draw_action_buttons(self, toolbar, background_color, foreground_color): + self.parent.log("Drawing New File Button") + new_btn = Button( + toolbar, + image=tk.PhotoImage(file="icons/new.png").subsample(24, 24), + bg=background_color, + bd=0, + borderless=True, + relief="flat", + overrelief="flat", + focusthickness=0, + bordercolor=background_color, + ) # New File + new_btn.pack(side=tk.LEFT, padx=2, pady=2) + Hovertip(new_btn, "New File") + + self.parent.log("Drawing Open File Button") + save_btn = Button( + toolbar, + image=tk.PhotoImage(file="icons/save.png").subsample(24, 24), + bg=background_color, + bd=0, + borderless=True, + relief="flat", + overrelief="flat", + focusthickness=0, + bordercolor=background_color, + ) # Save File + save_btn.pack(side=tk.LEFT, padx=2, pady=2) + Hovertip(save_btn, "Save File") + + self.parent.log("Drawing Spacer") + spacer = tk.Frame(toolbar, width=30, height=30, bg=background_color) + spacer.pack(side=tk.LEFT, padx=2, pady=2) + + self.parent.log("Drawing Cut Button") + cut_btn = Button( + toolbar, + image=tk.PhotoImage(file="icons/cut.png").subsample(24, 24), + bg=background_color, + bd=0, + borderless=True, + relief="flat", + overrelief="flat", + focusthickness=0, + bordercolor=background_color, + ) # Cut + cut_btn.pack(side=tk.LEFT, padx=2, pady=2) + Hovertip(cut_btn, "Cut") + + self.parent.log("Drawing Copy Button") + copy_btn = Button( + toolbar, + image=tk.PhotoImage(file="icons/copy.png").subsample(24, 24), + bg=background_color, + bd=0, + borderless=True, + relief="flat", + overrelief="flat", + focusthickness=0, + bordercolor=background_color, + ) # Copy + copy_btn.pack(side=tk.LEFT, padx=2, pady=2) + Hovertip(copy_btn, "Copy") - toolbar = tk.Frame(self, bd=1, relief=tk.RAISED) + self.parent.log("Drawing Paste Button") + paste_btn = Button( + toolbar, + image=tk.PhotoImage(file="icons/paste.png").subsample(24, 24), + bg=background_color, + bd=0, + borderless=True, + relief="flat", + overrelief="flat", + focusthickness=0, + bordercolor=background_color, + ) # Paste + paste_btn.pack(side=tk.LEFT, padx=2, pady=2) + Hovertip(paste_btn, "Paste") - # add icon 16x16 buttons - def get_icon(name): - return tk.PhotoImage(file=os.path.join(ICONS_FOLDER, name)) + self.parent.log("Drawing Spacer") + spacer = tk.Frame(toolbar, width=30, height=30, bg=background_color) + spacer.pack(side=tk.LEFT, padx=2, pady=2) - new_icon = get_icon("new.png") - save_icon = get_icon("save.png") - cut_icon = get_icon("cut.png") - copy_icon = get_icon("copy.png") - paste_icon = get_icon("paste.png") - print_icon = get_icon("print.png") + self.parent.log("Drawing Print Button") + print_btn = Button( + toolbar, + image=tk.PhotoImage(file="icons/print.png").subsample(24, 24), + bg=background_color, + bd=0, + borderless=True, + relief="flat", + overrelief="flat", + focusthickness=0, + bordercolor=background_color, + ) # Print + print_btn.pack(side=tk.LEFT, padx=2, pady=2) + Hovertip(print_btn, "Print") |
