XForms (Toolkit)
aus Wikipedia, der freien Enzyklopädie
XForms ist ein GUI-Toolkit das auf der Xlib-Bibliothek des X Window Systems aufbaut. Es beinhaltet viele in C implementierte Widget-Objekte, wie Beispielsweise Schaltflächen (Buttons), Bildlaufleisten (Scrollbars), Programmenüs und weitere Bedienelemente. Programmiert wurde XForms von T.C. Zhao und Mark Overmars, die es zunächst in einer Version, die für nicht-kommerzielle Anwender kostenlos war, veröffentlichten. Im März 1997 wurde mit dem erscheinen der Version 0.86 das komplette Toolkit unter die GNU Lesser General Public License gestellt.
Das XForms-Toolkit ist ursprünglich auf Silicon Graphics Workstations entstanden unter Verwendung der IRIS Graphics Library (IRIS GL), die proprietäre Vorgängerversion von OpenGL unter IRIX, wurde aber später unter Verwendung der Xlib-Bibliothek auf beliebige X11-Systeme portiert. Dabei verzichtet das Toolkit, im Gegensatz zu den Athena Widgets (Xaw), Motif (Xm) oder OpenLook (XView), auf die Benutzung des X-Toolkits (Xt) und implementiert sämtliche Widgets per direkt Zugriff auf die Xlib-Bibliothek. Für das Toolkit existieren mehrere Bezeichnungen wie „Forms Library for X“, „Forms Library“ oder einfach „XForms“, welche sich aber alle auch das gleiche Toolkit beziehen. Mit dem Ziel XForms abzulösen, wurde später das C++ basierte Fast Light Toolkit (FLTK) auf Basis der XForms-Bibliothek entwickelt. Das XForms-Toolkit ist somit entfernt verwandt mit dem FLTK.
Jedes Programm, das XForms als Oberfläche verwendet, benutzt eine oder mehrere Forms, wobei eine Form ein einfaches Fenster unter X darstellt. Die Form ist eine Box, in der man Widget-Objekte wie zum Beispiel Schaltflächen, Auswahlfelder und Eingabefelder platzieren kann. Eines der Besonderheiten des Toolkits ist der XForms Form-Designer, ein mitgelieferter interaktiver Oberflächen-Editor zum Erstellen grafischer Oberflächen. Er ermöglicht dem Programmierer seine Programme per Rapid Application Development (RAD) zu entwickeln. Der Form-Designer kann neue Forms erzeugen, Objekte einer Form zuweisen oder auch Objekte gruppieren.
Das Programmiermodell von XForms realisiert die Reaktion auf Ereignisse, wie z.B. das anklicken einer Checkbox, mit Callbacks. Hat eine Form zum Beispiel mehrere Schaltflächen, so besitzt jede eine eigene Callback-Funktion. In der Hauptschleife des Programms werden ständig die Ereignisse der verschiedenen Objekte abgefragt und der entsprechende Callback aktiviert, wenn etwas passiert. Darüber hinaus existieren Anbindungen an die Programmiersprachen Perl, Ada95, Fortran, Pascal, SCM/Guile und Python. Das XForms-Toolkit kann unter den Betriebssystemen IRIX, SunOS/Solaris, HP-UX, AIX, Tru64 UNIX, Linux, FreeBSD, NetBSD, OpenBSD, UnixWare, OpenVMS, OS/2 und Windows NT 4.0 genutzt werden; wobei die letzten drei nicht mehr aktiv im Quellcode gepflegt werden.
[Bearbeiten] Einsatzgebiete
Das Toolkit wurde ursprünglich vom Xfce-Projekt für die Gestaltung der grafischen Benutzeroberfläche benutzt, bevor es zum GTK+ Toolkit wechselte. Weitere bekannte Programme die das XForms-Toolkit nutzen, sind das grafische WYSIWYG-Frontend für LaTeX mit dem Namen LyX, der E-Mail-Client XFMail, der Fax-Betrachter xfax, das Bearbeitungsprogramm für Audiodateien Digital Audio Processor (DAP) und das kommerzielle CAD Programm für den Architekturbereich ARCAD.
[Bearbeiten] Beispielcode
Hier ein kleines Beispielprogramm für ein Fenster mit „Okay“-Button:
#include "include/forms.h" int main( int argc, char *argv[] ) { FL_FORM *form; fl_initialize( &argc, argv, 0, 0, 0 ); form = fl_bgn_form( FL_UP_BOX, 230, 160 ); fl_add_button( FL_NORMAL_BUTTON, 40, 50, 150, 60, "OK" ); fl_end_form(); fl_show_form( form, FL_PLACE_MOUSE, FL_NOBORDER, "Hello, world!" ); fl_do_forms(); /* main event loop */ fl_hide_form(form); return 0; }