====== 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