Add on-canvas navigation arrows

This commit is contained in:
lm 2025-10-17 13:59:48 +02:00
parent 82cafc58e6
commit 2077d574c3
1 changed files with 22 additions and 2 deletions

View File

@ -16,8 +16,6 @@ class UIBuilderMixin:
buttons = [ buttons = [
("📂 Bild laden", self.load_image), ("📂 Bild laden", self.load_image),
("📁 Ordner laden", self.load_folder), ("📁 Ordner laden", self.load_folder),
("⬅️ Bild zurück", self.show_previous_image),
("➡️ Nächstes Bild", self.show_next_image),
("🎨 Farbe wählen", self.choose_color), ("🎨 Farbe wählen", self.choose_color),
("🖱Farbe aus Bild klicken", self.enable_pick_mode), ("🖱Farbe aus Bild klicken", self.enable_pick_mode),
("💾 Overlay speichern", self.save_overlay), ("💾 Overlay speichern", self.save_overlay),
@ -74,6 +72,8 @@ class UIBuilderMixin:
left_column = ttk.Frame(main) left_column = ttk.Frame(main)
left_column.pack(side=tk.LEFT, fill=tk.BOTH, expand=True, padx=(0, 6)) left_column.pack(side=tk.LEFT, fill=tk.BOTH, expand=True, padx=(0, 6))
self._create_navigation_button(left_column, "", self.show_previous_image)
self.canvas_orig = tk.Canvas(left_column, bg="#1e1e1e", highlightthickness=0, relief="flat") self.canvas_orig = tk.Canvas(left_column, bg="#1e1e1e", highlightthickness=0, relief="flat")
self.canvas_orig.pack(fill=tk.BOTH, expand=True) self.canvas_orig.pack(fill=tk.BOTH, expand=True)
self.canvas_orig.bind("<Button-1>", self.on_canvas_click) self.canvas_orig.bind("<Button-1>", self.on_canvas_click)
@ -86,6 +86,7 @@ class UIBuilderMixin:
self.canvas_overlay = tk.Canvas(right_column, bg="#1e1e1e", highlightthickness=0, relief="flat") self.canvas_overlay = tk.Canvas(right_column, bg="#1e1e1e", highlightthickness=0, relief="flat")
self.canvas_overlay.pack(fill=tk.BOTH, expand=True) self.canvas_overlay.pack(fill=tk.BOTH, expand=True)
self._create_navigation_button(right_column, "", self.show_next_image)
info_frame = ttk.Frame(self.root) info_frame = ttk.Frame(self.root)
info_frame.pack(fill=tk.X, padx=12, pady=(0, 12)) info_frame.pack(fill=tk.X, padx=12, pady=(0, 12))
@ -316,6 +317,25 @@ class UIBuilderMixin:
] ]
return canvas.create_polygon(points, smooth=True, splinesteps=24, **kwargs) return canvas.create_polygon(points, smooth=True, splinesteps=24, **kwargs)
def _create_navigation_button(self, container, symbol: str, command) -> None:
wrapper = ttk.Frame(container)
wrapper.pack(fill=tk.Y)
btn = tk.Button(
wrapper,
text=symbol,
command=command,
font=("Segoe UI", 18, "bold"),
relief="flat",
borderwidth=0,
background="#00000000",
activebackground="#00000000",
highlightthickness=0,
cursor="hand2",
)
btn.pack(side=tk.TOP, pady=12)
wrapper.pack_propagate(False)
def _toolbar_palette(self) -> dict[str, str]: def _toolbar_palette(self) -> dict[str, str]:
is_dark = getattr(self, "theme", "light") == "dark" is_dark = getattr(self, "theme", "light") == "dark"
if is_dark: if is_dark: