added clipcascade

This commit is contained in:
liph
2026-07-23 16:48:58 +02:00
parent 90e44adbae
commit cba86d9dce
31 changed files with 6406 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
import logging
import re
from core.constants import *
def center_window(win, max_height=None):
"""Center a Tk/Toplevel window on the primary monitor."""
logging.debug(f"Centering window with max_height={max_height}")
win.update_idletasks()
window_width = win.winfo_width()
window_height = win.winfo_height()
if max_height:
window_height = min(window_height, max_height)
logging.debug(f"Window dimensions: {window_width}x{window_height}")
primary_x, primary_y = 0, 0
primary_w, primary_h = win.winfo_screenwidth(), win.winfo_screenheight()
try:
if PLATFORM.startswith(LINUX):
logging.debug("Detecting monitors on Linux platform")
import subprocess
result = subprocess.run(
["xrandr", "--query"], capture_output=True, text=True, timeout=2
)
for line in result.stdout.splitlines():
if " connected primary" in line:
m = re.search(r"(\d+)x(\d+)\+(\d+)\+(\d+)", line)
if m:
primary_w = int(m.group(1))
primary_h = int(m.group(2))
primary_x = int(m.group(3))
primary_y = int(m.group(4))
logging.debug(
f"Primary monitor: position=({primary_x}, {primary_y}), size={primary_w}x{primary_h}"
)
break
except Exception as e:
logging.warning(f"Failed to detect primary monitor: {e}. Using fallback dimensions.")
x = primary_x + (primary_w - window_width) // 2
y = primary_y + (primary_h - window_height) // 2
x = max(primary_x, x)
y = max(primary_y, y)
logging.debug(f"Calculated window position: ({x}, {y})")
win.geometry(f"{window_width}x{window_height}+{x}+{y}")
logging.debug(f"Applied geometry: {window_width}x{window_height}+{x}+{y}")