====== lyxvision ====== LyxVision ist das integrierte Text-UI-Framework für terminalbasierte Lyx-Anwendungen. Es ist nach dem Vorbild der klassischen Turbo Vision-Architektur aufgebaut: ereignisgesteuerte Widgets, Gruppen-/View-Hierarchie und modaler Dialog-Stack. LyxVision hat **kein** ''std.''-Präfix — der Import-Namespace ist direkt ''lyxvision.*''. → [[lyx_-_programmiersprache:units|Standard Library]] · [[lyx_-_programmiersprache:units:crt|std.crt]] · [[lyx_-_programmiersprache:units:x11|std.x11]] ---- ===== Architektur ===== ┌────────────────────────────────────────────────────────────┐ │ Anwendung │ │ tapplication · app · main │ ├───────────────────────┬────────────────────────────────────┤ │ Views │ Widgets │ │ view · group │ button · cluster · inputline │ │ window · dialog │ listview · menu · statictext │ │ frame │ staticline · terminal · textdevice│ ├───────────────────────┴────────────────────────────────────┤ │ Infrastruktur │ │ types · consts · drivers │ └────────────────────────────────────────────────────────────┘ ---- ===== Minimales Beispiel ===== import lyxvision.app; import lyxvision.tapplication; import lyxvision.button; import lyxvision.dialog; fn main(): int64 { var app: TApplication := TApplicationNew(); var dlg: TDialog := TDialogNew(10, 5, 60, 15, "Hallo LyxVision"); var btn: TButton := TButtonNew(dlg, 20, 8, " OK ", cmOK); TGroupInsert(dlg, btn); TApplicationExecView(app, dlg); TApplicationFree(app); return 0; } ---- ===== Units ===== ^ Unit ^ Kategorie ^ Beschreibung ^ | [[lyx_-_programmiersprache:units:lyxvision:main|lyxvision.main]] | Kern | Framework-Einstiegspunkt, Terminal-Helper-Funktionen | | [[lyx_-_programmiersprache:units:lyxvision:app|lyxvision.app]] | Kern | ''TProgram'' – Anwendungsschleife, Ereignis-Dispatch | | [[lyx_-_programmiersprache:units:lyxvision:tapplication|lyxvision.tapplication]] | Kern | ''TApplication'', ''TDesktop'', Menü- und Statusleiste | | [[lyx_-_programmiersprache:units:lyxvision:drivers|lyxvision.drivers]] | Kern | Low-Level Terminal-Treiber (ANSI, xterm, Linux-Konsole) | | [[lyx_-_programmiersprache:units:lyxvision:types|lyxvision.types]] | Typen | ''TEvent'', ''TPoint'', ''TRect'', Ereigniskonstanten (Maus, Tastatur, Befehl) | | [[lyx_-_programmiersprache:units:lyxvision:consts|lyxvision.consts]] | Typen | Farben (16 Paare), View-Flags, State-Flags, Draw-Flags, Cursor-Stile | | [[lyx_-_programmiersprache:units:lyxvision:view|lyxvision.view]] | Views | ''TView'' – Basis-Darstellungsobjekt; Draw, HandleEvent, SetState | | [[lyx_-_programmiersprache:units:lyxvision:group|lyxvision.group]] | Views | ''TGroup'' – Container für Views; Insert, Delete, Broadcast | | [[lyx_-_programmiersprache:units:lyxvision:window|lyxvision.window]] | Views | ''TWindow'' – Rahmenfenster mit Titelleiste, Zoom, Resize | | [[lyx_-_programmiersprache:units:lyxvision:dialog|lyxvision.dialog]] | Views | ''TDialog'' – modaler Dialog; ExecView, Ergebnis-Handling | | [[lyx_-_programmiersprache:units:lyxvision:frame|lyxvision.frame]] | Views | ''TFrame'' – Rahmenzeichnung (einfach/doppelt), Schatten | | [[lyx_-_programmiersprache:units:lyxvision:button|lyxvision.button]] | Widgets | ''TButton'' – Schaltfläche mit Befehl, Tastaturkürzel, Focus | | [[lyx_-_programmiersprache:units:lyxvision:cluster|lyxvision.cluster]] | Widgets | ''TCluster'' – Radio-Button- und Checkbox-Gruppe | | [[lyx_-_programmiersprache:units:lyxvision:inputline|lyxvision.inputline]] | Widgets | ''TInputLine'' – Texteingabefeld mit Validierungs-Callback | | [[lyx_-_programmiersprache:units:lyxvision:listview|lyxvision.listview]] | Widgets | ''TListView'' – scrollbare Listenansicht, selektierbare Einträge | | [[lyx_-_programmiersprache:units:lyxvision:menu|lyxvision.menu]] | Widgets | ''TMenu'', ''TMenuBar'', ''TSubMenu'' – vollständiges Menüsystem | | [[lyx_-_programmiersprache:units:lyxvision:statictext|lyxvision.statictext]] | Widgets | ''TStaticText'' – statische Textanzeige, mehrzeilig | | [[lyx_-_programmiersprache:units:lyxvision:staticline|lyxvision.staticline]] | Widgets | ''TStaticLine'' – horizontale/vertikale Trennlinie | | [[lyx_-_programmiersprache:units:lyxvision:terminal|lyxvision.terminal]] | Widgets | ''TTerminal'' – eingebetteter ANSI-Terminal-Emulator | | [[lyx_-_programmiersprache:units:lyxvision:textdevice|lyxvision.textdevice]] | Widgets | ''TTextDevice'' – scrollbarer Textpuffer für Log-Ausgaben | Letzte Aktualisierung: 2026-05-22