Telefact/main.py

61 lines
1.9 KiB
Python

# ============================================================
# File: /home/stu/Projects/Local REPO/telefact/main.py
# Description:
# Entry point for the Telefact Broadcaster mode.
# Initializes the Tkinter window, loads configuration,
# and renders the Teletext grid with dynamic header.
# ============================================================
import tkinter as tk
from src.config_manager import ConfigManager
from src.telefact_renderer import TelefactRenderer
from src.core.telefact_frame import TelefactFrame
from src.core.telefact_formatter import TelefactFormatter
from src.core.telefact_header import TelefactHeader
def main():
# --- Load configuration ---
config = ConfigManager().config
# --- Initialize Tkinter window ---
root = tk.Tk()
root.title(f"Telefact — Broadcaster ({config['Mode']})")
# --- Create renderer ---
renderer = TelefactRenderer(
root,
width=config["ScreenWidth"],
height=config["ScreenHeight"],
show_grid=config.get("ShowGrid", False),
font_path=config["Font"]["Path"],
)
# --- Prepare frame ---
frame = TelefactFrame()
# --- Initialize header ---
header = TelefactHeader(frame, config)
header.render()
header.update_time(root, renderer)
# --- Body & footer test content ---
formatter = TelefactFormatter(frame)
formatter.add_body_line(1, "Welcome to the Telefact Broadcaster base.", align="center", color="white")
formatter.add_body_line(3, "Press Q or ESC to exit.", align="center", color="cyan")
formatter.set_footer("PAGE 100 TELEFACT", align="center", color="green")
# --- Render frame ---
renderer.render(frame)
# --- Bind exit keys ---
root.bind("<Escape>", lambda e: root.quit())
root.bind("q", lambda e: root.quit())
# --- Start loop ---
root.mainloop()
if __name__ == "__main__":
main()