# -*- coding: utf-8 -*- """ Installer-Footer — F-Tasten-Leiste. """ from __future__ import annotations from typing import TYPE_CHECKING from textual.widget import Widget from textual.app import RenderResult from rich.text import Text if TYPE_CHECKING: from ..menu_context import MenuContext class InstallerFooter(Widget): """ Footer-Leiste mit aktiven F-Tasten-Bindungen. """ DEFAULT_CSS = """ InstallerFooter { dock: bottom; height: 1; background: $accent; color: $text; } """ def __init__(self, menu_context: "MenuContext | None" = None, **kwargs) -> None: super().__init__(**kwargs) self._menu_context = menu_context def update_menu(self, menu_context: "MenuContext") -> None: """Aktualisiert die angezeigte Menueleiste.""" self._menu_context = menu_context self.refresh() def render(self) -> RenderResult: text = Text() if self._menu_context: for binding in self._menu_context.get_all(): if binding.enabled: text.append(f" {binding.key.upper()} ", style="bold reverse") text.append(f" {binding.label} ", style="") else: text.append(f" {binding.key.upper()} ", style="dim") text.append(f" {binding.label} ", style="dim") # Q=Beenden immer anzeigen text.append(" Q ", style="bold reverse") text.append(" Beenden ", style="") return text