XForms (Toolkit)

XForms is a GUI toolkit based on Xlib library for the X Window System. It includes many implemented in C Widget objects, such as buttons (buttons ), scroll bars (scroll bars ), program menus and other controls. XForms was programmed by T. C. Zhao and Mark Overmars, initially published it in a version that was free for non- commercial users. In April 2002, was placed under the GNU Lesser General Public License with the release of version 0.9999 the complete toolkit.

The XForms toolkit was originally created on Silicon Graphics workstations using the IRIS Graphics Library (IRIS GL), its proprietary previous version of OpenGL on IRIX, but was later ported using the Xlib library on any X11 systems. It dispensed with the toolkit, in contrast to the Athena widgets ( Xaw ), Motif (Xm ) or Open Look ( XView ), to the use of the X Toolkit ( Xt ) and implements all widgets via direct access to the Xlib library. For the toolkit several names such as " Forms Library for X", " Forms Library " or simply " XForms ", but which all refer to the same toolkit exist. With the aim of replacing XForms, the C -based Fast Light Toolkit ( FLTK ) was developed based on the XForms library later. The XForms toolkit is thus distantly related to the FLTK.

Any program that uses XForms as a surface, used one or more forms, one form is a simple X-windows. A "form" is a box in which you can place Widget objects such as buttons, check boxes and input fields. One of the features of the toolkit is the XForms Form Designer, an interactive surfaces supplied editor for creating graphical user interfaces. It allows the programmer to develop its programs by Rapid Application Development (RAD). The Form Designer allows new forms and their objects to create, group them and edit their properties.

The programming model of XForms implements the response to events, such as clicking a checkbox with callbacks. Has a form, for example, several buttons, each a separate callback function can be assigned. In the main loop of the program to wait for events, and if the event relates to a specific object, the corresponding callback function is executed. In addition, bindings to the programming languages ​​Perl, Ada95, Fortran, Pascal, SCM / Guile and Python. The XForms toolkit can under the operating systems IRIX, SunOS / Solaris, HP- UX, AIX, Tru64 UNIX, Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, UnixWare, OpenVMS, are used OS / 2 and Windows NT 4.0, with the last three are no longer actively maintained in the source code.

Areas of application

The toolkit was originally used by the Xfce project for designing the graphical user interface, before it moved to the GIMP Toolkit. Also LyX, the graphical WYSIWYG - frontend for LaTeX, sat a long time XForms as a base; since version 1.5 is used because of the lack of Unicode support in the XForms toolkit exclusively only the Qt library. Other well-known programs that use the XForms toolkit, are the e -mail client XFMail, the fax viewer xfax, the machining program for audio files Digital Audio Processor (DAP ), and the commercial CAD program for architectural applications Arcad.

Sample Code

Here is a small example program for a window with "OK " button:

# include   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);      fl_finish ();      return 0; } References