Files
pristontale-eu-linux/ptlinux/ui/dialogs/activity.py
2026-09-03 19:07:09 +02:00

51 lines
1.1 KiB
Python

"""Activity-log auxiliary window."""
from __future__ import annotations
from dataclasses import dataclass
from typing import Any, Callable
from ..viewmodels.dashboard import fitted_window_size
@dataclass(frozen=True)
class ActivityWindow:
window: Any
log: Any
def build_activity_window(
root: Any,
*,
tk_module: Any,
ui_scale: float,
apply_window_icon: Callable[[Any], None],
) -> ActivityWindow:
window = tk_module.Toplevel(root)
window.title("PristonTale EU — Activity")
width, height = fitted_window_size(
800,
400,
scale=ui_scale,
screen_width=window.winfo_screenwidth(),
screen_height=window.winfo_screenheight(),
)
window.geometry(f"{width}x{height}")
window.resizable(False, False)
window.configure(background="#0c0908")
apply_window_icon(window)
log = tk_module.Text(
window,
background="#100d0c",
foreground="#d8cbbd",
insertbackground="#f8fafc",
relief="flat",
font=("Monospace", 9),
padx=10,
pady=8,
state="disabled",
)
log.pack(fill="both", expand=True, padx=10, pady=10)
window.withdraw()
return ActivityWindow(window=window, log=log)