Tune nav arrow theming and toolbar spacing
This commit is contained in:
parent
1588e8eb99
commit
c7ac43dc37
|
|
@ -53,6 +53,10 @@ class ThemeMixin:
|
|||
if callable(button_refresher):
|
||||
button_refresher()
|
||||
|
||||
nav_refresher = getattr(self, "_refresh_navigation_buttons_theme", None)
|
||||
if callable(nav_refresher):
|
||||
nav_refresher()
|
||||
|
||||
status_refresher = getattr(self, "_refresh_status_palette", None)
|
||||
if callable(status_refresher) and hasattr(self, "status"):
|
||||
status_refresher(status_fg)
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ class UIBuilderMixin:
|
|||
("🌓 Theme umschalten", self.toggle_theme),
|
||||
]
|
||||
self._toolbar_buttons: list[dict[str, object]] = []
|
||||
self._nav_buttons: list[tk.Button] = []
|
||||
|
||||
buttons_frame = ttk.Frame(toolbar)
|
||||
buttons_frame.pack(side=tk.LEFT)
|
||||
|
|
@ -326,9 +327,10 @@ class UIBuilderMixin:
|
|||
return canvas.create_polygon(points, smooth=True, splinesteps=24, **kwargs)
|
||||
|
||||
def _create_navigation_button(self, container, symbol: str, command, *, column: int) -> None:
|
||||
bg = self.root.cget("bg") if hasattr(self.root, "cget") else "#f2f2f7"
|
||||
palette = self._navigation_palette()
|
||||
bg = palette["bg"]
|
||||
fg = palette["fg"]
|
||||
container.grid_rowconfigure(0, weight=1)
|
||||
fg = "#f5f5f5" if getattr(self, "theme", "light") == "dark" else "#1f1f1f"
|
||||
btn = tk.Button(
|
||||
container,
|
||||
text=symbol,
|
||||
|
|
@ -345,6 +347,7 @@ class UIBuilderMixin:
|
|||
width=2,
|
||||
)
|
||||
btn.grid(row=0, column=column, sticky="ns", padx=6)
|
||||
self._nav_buttons.append(btn)
|
||||
|
||||
def _create_titlebar(self) -> None:
|
||||
bar_bg = "#1f1f1f"
|
||||
|
|
@ -443,6 +446,12 @@ class UIBuilderMixin:
|
|||
"text": "#1f1f1f",
|
||||
}
|
||||
|
||||
def _navigation_palette(self) -> dict[str, str]:
|
||||
is_dark = getattr(self, "theme", "light") == "dark"
|
||||
if is_dark:
|
||||
return {"bg": "#26262a", "fg": "#f5f5f5"}
|
||||
return {"bg": "#e8e8ee", "fg": "#1f1f1f"}
|
||||
|
||||
def _refresh_toolbar_buttons_theme(self) -> None:
|
||||
if not getattr(self, "_toolbar_buttons", None):
|
||||
return
|
||||
|
|
@ -457,6 +466,18 @@ class UIBuilderMixin:
|
|||
canvas.itemconfigure(rect_id, fill=palette["normal"], outline=palette["outline"])
|
||||
canvas.itemconfigure(text_id, fill=palette["text"])
|
||||
|
||||
def _refresh_navigation_buttons_theme(self) -> None:
|
||||
if not getattr(self, "_nav_buttons", None):
|
||||
return
|
||||
palette = self._navigation_palette()
|
||||
for btn in self._nav_buttons:
|
||||
btn.configure(
|
||||
background=palette["bg"],
|
||||
activebackground=palette["bg"],
|
||||
fg=palette["fg"],
|
||||
activeforeground=palette["fg"],
|
||||
)
|
||||
|
||||
def _refresh_status_palette(self, fg: str) -> None:
|
||||
self.status.configure(foreground=fg)
|
||||
self._status_palette["fg"] = fg
|
||||
|
|
|
|||
Loading…
Reference in New Issue