Das »GUP«-Paket von »GFA« hilft — so verspricht der Hersteller — GEM-geplagten Programmierern, eine saubere Benutzeroberfläche in ihre Software zu zaubern.
Mit GFA-Basic entwickelte Programme sind sehr zahlreich, weil GFA-Basic sehr umfangreich und dennoch sehr einfach zu handhaben ist.
Leider haben viele dieser Programme, besonders aus dem PD-Bereich, das Manko, GEM gar nicht oder nur in Form von Menüleisten und Alertboxen zu unterstützen. Dies sind schlicht die AES-Komponenten, die GFA-Basic seit der Version 1.0 beinhaltet. Außerdem sind nur die wenigsten dieser Programme auf anderen Auflösungen lauffähig.
Abhilfe will hier also das besagte GEM-Utility-Package, kurz GUP, schaffen. Wie der Name schon sagt, ist GUP eine Sammlung von Routinen, mit denen man GEM-Programme erstellt. GUP ist allerdings keine Library wie etwa das EASY-GEM für Omikron-Basic.
GUP ist vielmehr ein Programm-Skelett, in dem alle GEM-Komponenten enthalten sind und das nach eigenen Bedürfnissen erweitert werden kann. Ob man dem Anwender nun Fenster, eine Menüleiste, einen Desktop oder Dialogboxen zur Verfügung stellen möchte, GUP ist auf diese Wünsche vorbereitet.
Die Einbindung geht recht einfach. Zuerst muß ein Unterprogramm zum Initialisieren derart erweitert werden, daß die benötigten Variablen die richtigen Startwerte erhalten. Außerdem muß — wenn vorhanden — eine Ressource geladen werden.
Auch die Initialisierung einer Menüleiste und eines Desktops gehören in diese Phase. Allerdings beschränkt sich hier die Arbeit darauf, GUP mitzuteilen, hinter welchen Bäumen sich die Elemente befinden. GUP bringt nun Menüleiste und Desktop auf den Bildschirm.
Für jede der Aktionen, die der Anwender später vornehmen kann, wie Pull-Down-Menü anwählen oder Icon-Operation, muß nun eine entsprechende Routine erweitert werden. Startet der Anwender später eine dieser Aktionen, wird die Funktion aufgerufen.
Ein Juwel unter den GUP-Routinen ist das Window-Handling. Während man sich sonst die Finger wund schreibt und Redraw-Fehler auch nach langer Testphase noch nicht vollständig entfernt hat, kann sich der GUP-Besitzer gemütlich zurücklehnen, wenn er die wenigen Routinen, die er selbst schreiben muß, erledigt hat.
Drei Typen von Fenstern sind unter GUP vordefiniert. Alle drei sind Textfenster. Der erste Typ ist ein reines Anschau-Fenster. Der zweite läßt die Selektion einer Zeile zu: Versucht der Anwender eine andere Zeile anzuwählen, wird die vorherige wieder deselektiert. Ein Effekt wie bei Radio-Buttons der Dialogboxen tritt also auf. Ob und welche Zeile gerade selektiert ist, kann man ständig abfragen.
Im dritten Typ ist man in der Lage, mehrere Zeilen zu selektieren. In einem Feld vom Typ »Boolean« notiert GUP, welche Zeilen ausgewählt sind und welche nicht.
Das Neuzeichnen eines Textfensters ist unter GUP eine Kleinigkeit. Dazu muß der Programmierer nur eine Routine bereitstellen, die unter Angabe der Zeilennummer einen String ausfüllt, der dann bei einem Redraw automatisch von GUP an die richtige Stelle im Fenster plaziert wird.
Auch für Grafikfenster haben sich die Entwickler von GUP etwas einfallen lassen. Müssen ein Teil des Fensters oder gar das gesamte Fenster neu gezeichnet werden, ruft GUP eine Prozedur auf, in der der Programmierer die absoluten Koordinaten einsetzt, wo neu gezeichnet werden muß. Mit einem BITBLT-Befehl könnte man jetzt das entsprechende Stück einer Rastergrafik aus dem Puffer holen und ins Fenster kopieren.
Klickt der Benutzer in ein solches Grafikfenster, ruft GUP wiederum ein Unterprogramm auf, in dem der Programmierer einsetzt, was geschehen soll. Ein Paintprogramm auf GUP-Basis könnte hier z. B. das Zeichnen eines Kreises oder einer Linie zulassen. In dem mitgelieferten Beispiel wird eine solche Grafik dargestellt. Leider ist diese Demonstration auf einem Großbildschirm nicht lauffähig, da im Beispiel auf unsaubere Methoden zurückgegriffen wird.
Ähnlich komfortabel, wie die Fensterprogrammierung, ist das Betreiben eines eigenen Desktops. Einen einmal angemeldeten Desktop bringt GUP ja schon beim Programmstart auf den Bildschirm. Für jede Aktion, die der Benutzer später am Desktop vornehmen kann, ruft GUP eine Prozedur auf.
Drei Variationen von Icon-Aktionen auf dem Desktop werden von diesem Programm verwaltet. Zuerst kann man ein Icon anklicken. GUP ruft nun ein Unterprogramm auf und übergibt als Parameter das Objekt und die Anzahl der Klicks. Die GEM-Philosophie besagt, daß im Falle eines Doppelklicks eine Aktion gestartet werden soll (Desktop öffnet ein Fenster). Ein Einzelklick macht erstmal gar nichts und wartet weitere Aktionen des Benutzers ab (z.B. Datei-Information im GEM-Desktop).
Die zweite Variante besteht darin, daß ein Icon auf ein anderes Objekt auf dem Desktop gezogen wird. Ist unter der neuen Position nur der graue Desktop-Hintergrund, sollte gar nichts passieren, außer daß das Icon verschoben wird. Befindet sich aber ein anderes Icon darunter, kann man wieder eine Aktion starten (z.B. Disk kopieren im GEM-Desktop). GUP liefert wiederum alle Parameter an ein Unterprogramm.
Zudem kann der Benutzer ein Icon auf ein geöffnetes Fenster legen. In diesem Falle verzweigt GUP in ein drittes Unterprogramm. Auf einen Klick auf den leeren Desktop reagiert GUP damit, alle Icons und Zeilen eines Textfensters zu deselektieren. Anschließend wird wieder ein benutzerdefinierbares Unterprogramm aufgerufen.
Neben einigen nützlichen Hilfsfunktionen, wie Release_mouse (wartet, bis keine Maustaste gedrückt ist) oder dem Aufziehen und Verschieben von Rahmen, bietet GUP eine Palette von Funktionen zur Unterstützung von Dialogboxen. Mit einem Befehl kann ein ganzer Dialog verwaltet werden. Sogar die mühselig zu programmierende Slider-Verwaltung kann GUP schon vorweisen. Zur Auswertung liefert GUP einige Unterprogramme, um z.B. Texte auszulesen.
Rundherum hinterläßt GUP einen sehr guten Eindruck. Es macht Spaß, mit den GUP-Programmen zu arbeiten, da sie tatsächlich der GEM-Philosophie entsprechen.
Was fehlt, ist noch eine Unterstützung von GDOS und nachladbaren Zeichensätzen. GFA-Basic kann zwar damit arbeiten, aber ein paar Routinen zur Druckeransteuerung oder Fonteinstellung würden GUP sicherlich gut tun und dem Programmierer dieses noch viel zu wenig bekannte Betriebssystemteil näherbringen.
Der nicht gerade niedrige Preis von 149 Mark ist auf jeden Fall jetzt schon gerechtfertigt. (uw)
Wertung
Stärken: □ einfach zu handhaben □ mächtige Fenster- und Desktop-Routinen □ Programme sind für GEM-Verhältnisse schnell
Schwächen: □ keine GDOS-Unterstützung
Fazit: Für jeden, der mit GFA-Basic programmiert, ein Muß.
GFA-Systemtechnik GmbH, Heerdier Sandberg 30, 4000 Düsseldorf 11