Tint accent labels based on theme
This commit is contained in:
parent
1024d84bbc
commit
e3013bd305
|
|
@ -36,9 +36,11 @@ class ThemeMixin:
|
||||||
if self.theme == "dark":
|
if self.theme == "dark":
|
||||||
bg, fg = "#0f0f10", "#f1f1f1"
|
bg, fg = "#0f0f10", "#f1f1f1"
|
||||||
status_fg = "#f5f5f5"
|
status_fg = "#f5f5f5"
|
||||||
|
highlight_fg = "#f2c744"
|
||||||
else:
|
else:
|
||||||
bg, fg = "#ededf2", "#202020"
|
bg, fg = "#ededf2", "#202020"
|
||||||
status_fg = "#1c1c1c"
|
status_fg = "#1c1c1c"
|
||||||
|
highlight_fg = "#c56217"
|
||||||
self.root.configure(bg=bg) # type: ignore[attr-defined]
|
self.root.configure(bg=bg) # type: ignore[attr-defined]
|
||||||
|
|
||||||
s = self.style
|
s = self.style
|
||||||
|
|
@ -61,6 +63,10 @@ class ThemeMixin:
|
||||||
if callable(status_refresher) and hasattr(self, "status"):
|
if callable(status_refresher) and hasattr(self, "status"):
|
||||||
status_refresher(status_fg)
|
status_refresher(status_fg)
|
||||||
|
|
||||||
|
accent_refresher = getattr(self, "_refresh_accent_labels", None)
|
||||||
|
if callable(accent_refresher) and hasattr(self, "filename_label"):
|
||||||
|
accent_refresher(highlight_fg)
|
||||||
|
|
||||||
def detect_system_theme(self) -> str:
|
def detect_system_theme(self) -> str:
|
||||||
"""Best-effort detection of the OS theme preference."""
|
"""Best-effort detection of the OS theme preference."""
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
|
|
@ -98,26 +98,24 @@ class UIBuilderMixin:
|
||||||
|
|
||||||
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))
|
||||||
self.filename_label = ttk.Label(
|
self.filename_label = ttk.Label(
|
||||||
info_frame,
|
info_frame,
|
||||||
text="—",
|
text="—",
|
||||||
foreground="#f2c744",
|
font=("Segoe UI", 10, "bold"),
|
||||||
font=("Segoe UI", 10, "bold"),
|
anchor="center",
|
||||||
anchor="center",
|
justify="center",
|
||||||
justify="center",
|
)
|
||||||
)
|
self.filename_label.pack(anchor="center")
|
||||||
self.filename_label.pack(anchor="center")
|
|
||||||
self._attach_copy_menu(self.filename_label)
|
self._attach_copy_menu(self.filename_label)
|
||||||
|
|
||||||
self.ratio_label = ttk.Label(
|
self.ratio_label = ttk.Label(
|
||||||
info_frame,
|
info_frame,
|
||||||
text="Markierungen (mit Ausschlüssen): —",
|
text="Markierungen (mit Ausschlüssen): —",
|
||||||
foreground="#f2c744",
|
font=("Segoe UI", 10, "bold"),
|
||||||
font=("Segoe UI", 10, "bold"),
|
anchor="center",
|
||||||
anchor="center",
|
justify="center",
|
||||||
justify="center",
|
)
|
||||||
)
|
self.ratio_label.pack(anchor="center", pady=(4, 0))
|
||||||
self.ratio_label.pack(anchor="center", pady=(4, 0))
|
|
||||||
self._attach_copy_menu(self.ratio_label)
|
self._attach_copy_menu(self.ratio_label)
|
||||||
|
|
||||||
self.root.bind("<Escape>", self.disable_pick_mode)
|
self.root.bind("<Escape>", self.disable_pick_mode)
|
||||||
|
|
@ -495,9 +493,16 @@ class UIBuilderMixin:
|
||||||
activeforeground=palette["fg"],
|
activeforeground=palette["fg"],
|
||||||
)
|
)
|
||||||
|
|
||||||
def _refresh_status_palette(self, fg: str) -> None:
|
def _refresh_status_palette(self, fg: str) -> None:
|
||||||
self.status.configure(foreground=fg)
|
self.status.configure(foreground=fg)
|
||||||
self._status_palette["fg"] = fg
|
self._status_palette["fg"] = fg
|
||||||
|
|
||||||
|
def _refresh_accent_labels(self, colour: str) -> None:
|
||||||
|
try:
|
||||||
|
self.filename_label.configure(foreground=colour)
|
||||||
|
self.ratio_label.configure(foreground=colour)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
def _init_copy_menu(self):
|
def _init_copy_menu(self):
|
||||||
self._copy_target = None
|
self._copy_target = None
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue