v5: refactor into modular stream_tools desktop app
Same inaSpeechSegmenter engine split into reusable core/ (fftools, segmenter, exporters) + utils/ and a CustomTkinter multi-tab UI. Adds JSON and ffmpeg-script export. Extracted from the stream_tools app. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
64
ui/theme.py
Normal file
64
ui/theme.py
Normal file
@@ -0,0 +1,64 @@
|
||||
"""
|
||||
Theme, DPI, and shared styling constants.
|
||||
"""
|
||||
|
||||
import sys
|
||||
|
||||
# ── DPI awareness (call before any Tk/CTk window) ────────────────────────────
|
||||
def setup_dpi():
|
||||
if sys.platform == "win32":
|
||||
try:
|
||||
import ctypes
|
||||
ctypes.windll.shcore.SetProcessDpiAwareness(2)
|
||||
except Exception:
|
||||
try:
|
||||
import ctypes
|
||||
ctypes.windll.user32.SetProcessDPIAware()
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
def dpi_scale(widget) -> float:
|
||||
try:
|
||||
return max(1.0, widget.winfo_fpixels("1i") / 96.0)
|
||||
except Exception:
|
||||
return 1.0
|
||||
|
||||
|
||||
# ── Color accents ─────────────────────────────────────────────────────────────
|
||||
# Each feature area has its own accent color scheme: (light_mode, dark_mode)
|
||||
|
||||
ACCENT_BLUE = {
|
||||
"fg": ("#3B82F6", "#2563EB"),
|
||||
"hover": ("#2563EB", "#1D4ED8"),
|
||||
}
|
||||
|
||||
ACCENT_PURPLE = {
|
||||
"fg": ("#EDE9FE", "#3B1F6E"),
|
||||
"text": ("#5B21B6", "#C4B5FD"),
|
||||
"hover": ("#DDD6FE", "#4C2889"),
|
||||
"preview": ("#7C3AED", "#A78BFA"),
|
||||
}
|
||||
|
||||
ACCENT_GREEN = {
|
||||
"fg": ("#10B981", "#059669"),
|
||||
"hover": ("#059669", "#047857"),
|
||||
}
|
||||
|
||||
ACCENT_AMBER = {
|
||||
"fg": ("#F59E0B", "#D97706"),
|
||||
"hover": ("#D97706", "#B45309"),
|
||||
}
|
||||
|
||||
# Neutral button style
|
||||
BTN_NEUTRAL = {
|
||||
"fg_color": ("gray80", "gray25"),
|
||||
"text_color": ("gray10", "gray90"),
|
||||
"hover_color": ("gray70", "gray35"),
|
||||
}
|
||||
|
||||
BTN_SIDE = {
|
||||
"fg_color": ("gray82", "gray22"),
|
||||
"text_color": ("gray10", "gray90"),
|
||||
"hover_color": ("gray72", "gray32"),
|
||||
}
|
||||
Reference in New Issue
Block a user