Telefact/main.py

65 lines
2.0 KiB
Python

# ============================================================
# File: /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/footer.
# ============================================================
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
from src.core.telefact_footer import TelefactFooter
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"],
font_size=config["Font"]["Size"],
)
# --- Prepare frame ---
frame = TelefactFrame()
# --- Header ---
header = TelefactHeader(frame, config)
header.render()
header.update_time(root, renderer)
# --- Body 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")
# --- Footer (replaces old PAGE 100 TELEFACT) ---
footer = TelefactFooter(frame, config)
footer.set_footer("Telefact: The world at your fingertips", align="left", fg="yellow", bg="blue")
# --- Render everything ---
renderer.render(frame)
# --- Bind exit keys ---
root.bind("<Escape>", lambda e: root.quit())
root.bind("q", lambda e: root.quit())
root.mainloop()
if __name__ == "__main__":
main()