Unterabschnitte

Einleitung

Was ist die libCUI

Die Abkürzung CUI steht für Character User Interface. Gemeint ist damit eine bedienerfreundliche Gestaltung der Benutzeroberfläche, die im Gegensatz zum GUI (Grapical User Interface) auf einer reinen Zeichendarstellung beruht und vornehmlich für die Textkonsole gedacht ist.

Die libCUI ist eine auf curses (GNU ncurses) basierende Bibliothek, zur einfachen und schellen Entwicklung von CUI-Anwendungen. Programmiert wird dabei mit Ansichten, die in der libCUI Terminologie als Fenster bezeichnet werden.

Zentraler Bestandteil der Bibliothek ist eine Art Fenstermanager der die Darstellung und Verwaltung von Fenstern, sowie die Steuerung der Tastatur- und Mauseingabe übernimmt.

Aufbauend auf einer generischen Fensterfunktionalität, kann sich der CUI-Programmierer seine eigenen Ansichten durch die Vorgabe von Fensterstilen und durch die Implementierung von Hook-Funktionen erstellen. Daneben sind auch eine Reihe vordefinierter Fensterklassen verfügbar, die auf einfache Weise in eigene Anwendungen eingebunden werden können. Dies sind im allgemeinen Kontrollelemente wie Textfelder, Buttons und Listboxen.

Während die libCUI dem Programmierer das Update-Handling der Benutzerschnittstelle, sowie die Tastatur- und Mausbehandlung vollständig abnimmt, werden für die Textausgabe selbst die Funktionen der ncurses-Bibliothek verwendet. Es sind daher Grundkenntnisse dieser API erforderlich um erfolgreich Anwendungen mit der libCUI erstellen zu können.

Das vorliegende Dokument ist keine vollständige Referenz der CUI-API sondern versucht ein didaktischer Leitfaden zu sein, der den Programmierer schrittweise an den Umgang mit der Bibliothek heranführt. Für eine vollständige Liste aller Funktionsprototypen und Datentypen sein auf die Datei ''cui.h'' verwiesen, die sich unter ''/usr/include'' befinden sollte.

Historie

Alles begann damit, dass für eisfair ein auf curses basierendes Programm zur Darstellung des Systemmenüs entwickelt wurde. Später kamen weitere Programme, wie z.B. der Konfigurationseditor und ein Dokumenten-Viewer dazu, die auf gemeinsamen Code-Dateien beruhten um redundante Code-Pflege zu vermeiden. Dies wurde jedoch mehr und mehr zum Problem. Zum einen waren die bisherigen Dateien konzeptionell nicht dafür vorgesehen, um universell einsetzbar zu sein, zum anderen wurde das Projektverzeichnis durch weitere Programme immer unübersichtlicher.

Um hier eine Trennung der Projekte und zugleich eine Verallgemeinerung der zugrunde liegenden Programmroutinen zu erreichen wurde die libCUI entwickelt. Dabei wurde darauf geachtet, dass auch mit der neuen Basis die eisfair-typische Darstellung der Anwendungen weiterhin gewahrt bleibt.

Hinweis
Zum Zeitpunkt der Erstellung dieses Dokuments ist die libCUI noch sehr jung und noch nicht alle eisfair-Programme wurden bisher auf die Verwendung der Bibliothek umgestellt. Es ist noch immer damit zu rechnen, dass sich die API grundlegend ändert, weshalb in diesem Stadium dringend empfohlen wird, eigene Programme statisch mit der libCUI zu verlinken. Siehe dazu auch das Kapitel ''"ubersetzen von libCUI Anwendungen''


Lizenz

Die libCUI unterliegt der GPL.

Holger Bruenjes 2016-12-12