61 lines
1.9 KiB
Python
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()
|