FOX is a C++ based Toolkit for developing Graphical User Interfaces easily and effectively.

FOX is a C++ based Toolkit for developing Graphical User Interfaces easily and effectively. It offers a wide, and growing, collection of Controls, and provides state of the art facilities such as drag and drop, selection, as well as OpenGL widgets for 3D graphical manipulation. FOX also implements icons, images, and user-convenience features such as status line help, and tooltips. Tooltips may even be used for 3D objects!

Considerable importance has been placed on making FOX one of the fastest toolkits around, and to minimize memory use:- FOX uses a number of techniques to speed up drawing and spatial layout of the GUI. Memory is conserved by allowing programmers to create and destroy GUI elements on the fly.

Even though FOX offers a large collection of Controls already, FOX leverages C++ to allow programmers to easily build additional Controls and GUI elements, simply by taking existing controls, and creating a derived class which simply adds or redefines the desired behavior.

One of the prime design goals of FOX is the ease of programming; thus, most controls can be created using a single line of C++ code; most parameters have sensible default values, so that they may be omitted, and layout managers ensure that designers of GUI's do not have to worry about precise alignments.

Another nice feature of FOX which significantly reduces the number of lines of code which have to be written is FOX's ability to have widgets connect to each other, and passing certain commands between them; for example, a menu entry Hide Toolbar can be directly connected to the Toolbar, and cause it to hide.

Finally, FOX makes it easy to maintain the state of the GUI in an application by having the GUI elements automatically updating themselves by interrogating the application's state. This feature eliminates the large amount of effort that may go into sensitizing, graying out, checking/unchecking etc. depending on the application state.

The list of platforms is growing! Currently, we have FOX running on a large number of operating systems, ranging from Linux, FreeBSD, SGI IRIX, HP-UX, IBM AIX, SUN Solaris, DEC/Compaq Tru64 UNIX, to MS-Window operating systems like Windows 9x, Windows NT, Windows ME and Windows 2000. Since most of the FOX implementation is completely oblivious to the underlying platform (in many cases it is not even including header files), applications work virtually identically on all these platforms.

FOX stands for Free Objects for X. It is a C++ based class library for building Graphical User Interfaces. Initially, it was developed for LINUX, but the scope of this project has in the course of time become somewhat more ambitious. Current aims are to make FOX completely platform independent, and thus programs written against the FOX library will be only a compile away from running on a variety of platforms.

The idea of designing and implementing something like FOX started in spring '97. In the course of using several different systems, ranging from OSF Motif, NeXTstep, MS Windows, and Intergraph's System 5, the author has developed some conception of what the ideal GUI toolkit was supposed to look like. After a couple of false starts, and some experimentation with various ideas under different platforms, FOX was born.

Because it draws from so many sources, most experienced GUI programmers will probably recognize a few of the underlying concepts; but only FOX brings all these together in one integrated system.

Some of the ideas and concepts underlying the FOX system are listed below:

* Ease of Development. Developing Graphical User Interfaces is a fairly complicated process. FOX reduces the burden on the developer significantly:Release notes: New Release* New feature in FXHeader control: auto-renumbering captions based on renumbering function; if a renumbering function (which computes the caption from the caption index) is set, then captions are automatically recomputed when the number of items in the FXHeader is changed. * Updated FXTable to use this new feature in FXHeader. The old options for renumbering have been removed. * Porting problem in FXMat4d, FXMat4f fixed, for CYGWIN32. * Added API's to FXTable to return first and last row (or column) of a spanning cell. * Added API to check if a cell is horizontally spanning or vertically spanning. * Cutoff angles in FXQuatd are smaller than in FXQuatf, due to much greater precision of doubles versus floats. * FOX on Raspberry Pi coming soon (I got one on order!). [ FOX Toolkit full changelog ]