Remove scrolling and fix empty space, restore patterns to settings.json
This commit is contained in:
48
src/main.py
48
src/main.py
@@ -109,13 +109,13 @@ class App:
|
||||
style.map("TNotebook.Tab", background=[("selected", active_bg_color)], foreground=[("selected", fg_color)])
|
||||
style.configure("TFrame", background=bg_color)
|
||||
|
||||
# Create Notebook for tabs (packed first so it takes remaining space)
|
||||
self.notebook = ttk.Notebook(self.root)
|
||||
self.notebook.pack(expand=1, fill="both")
|
||||
|
||||
# Tab management buttons frame (packed at bottom so it stays visible)
|
||||
tab_management_frame = tk.Frame(self.root, bg=bg_color)
|
||||
tab_management_frame.pack(side=tk.BOTTOM, fill=tk.X, padx=self.scale_size(10), pady=self.scale_size(5))
|
||||
|
||||
# Create Notebook for tabs (packed after buttons so it takes remaining space)
|
||||
self.notebook = ttk.Notebook(self.root)
|
||||
self.notebook.pack(expand=1, fill="both", before=tab_management_frame)
|
||||
|
||||
add_tab_btn = tk.Button(
|
||||
tab_management_frame,
|
||||
@@ -687,47 +687,13 @@ class App:
|
||||
|
||||
initial_r, initial_g, initial_b = color_utils.hex_to_rgb(initial_hex_color)
|
||||
|
||||
# Create a scrollable frame for the tab content
|
||||
canvas = tk.Canvas(tab, bg=bg_color, highlightthickness=0)
|
||||
scrollbar = tk.Scrollbar(tab, orient="vertical", command=canvas.yview)
|
||||
scrollable_frame = tk.Frame(canvas, bg=bg_color)
|
||||
|
||||
scrollable_frame.bind(
|
||||
"<Configure>",
|
||||
lambda e: canvas.configure(scrollregion=canvas.bbox("all"))
|
||||
)
|
||||
|
||||
canvas_window = canvas.create_window((0, 0), window=scrollable_frame, anchor="nw")
|
||||
canvas.configure(yscrollcommand=scrollbar.set)
|
||||
|
||||
# Make canvas window resize with canvas
|
||||
def configure_scroll_region(event):
|
||||
canvas.configure(scrollregion=canvas.bbox("all"))
|
||||
# Update canvas window width to match canvas
|
||||
canvas_width = event.width
|
||||
canvas.itemconfig(canvas_window, width=canvas_width)
|
||||
|
||||
canvas.bind('<Configure>', configure_scroll_region)
|
||||
|
||||
canvas.pack(side="left", fill="both", expand=True)
|
||||
scrollbar.pack(side="right", fill="y")
|
||||
|
||||
# Bind mousewheel to canvas (cross-platform)
|
||||
def _on_mousewheel(event):
|
||||
if event.num == 4 or event.delta > 0:
|
||||
canvas.yview_scroll(-1, "units")
|
||||
elif event.num == 5 or event.delta < 0:
|
||||
canvas.yview_scroll(1, "units")
|
||||
canvas.bind_all("<MouseWheel>", _on_mousewheel)
|
||||
canvas.bind_all("<Button-4>", _on_mousewheel)
|
||||
canvas.bind_all("<Button-5>", _on_mousewheel)
|
||||
|
||||
# Main frame to hold everything within the tab
|
||||
main_tab_frame = scrollable_frame
|
||||
main_tab_frame = tk.Frame(tab, bg=bg_color)
|
||||
main_tab_frame.pack(expand=True, fill="both", padx=self.scale_size(10), pady=self.scale_size(10))
|
||||
|
||||
# Left panel container for sliders and n inputs
|
||||
left_panel_container = tk.Frame(main_tab_frame, bg=bg_color)
|
||||
left_panel_container.pack(side=tk.LEFT, padx=10, pady=10)
|
||||
left_panel_container.pack(side=tk.LEFT, padx=self.scale_size(10), pady=self.scale_size(10))
|
||||
|
||||
# Slider panel
|
||||
slider_panel_frame = tk.Frame(left_panel_container, bg=bg_color)
|
||||
|
||||
Reference in New Issue
Block a user