# ============================================================ # 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("", lambda e: root.quit()) root.bind("q", lambda e: root.quit()) # --- Start loop --- root.mainloop() if __name__ == "__main__": main()