Fox toolkit

Fox toolkit

Infobox_Software
name = FOX toolkit



caption = FOX applications
developer = Jeroen van der Zijp, FOX community
latest_release_version = 1.6.34 (Major stable)
latest_release_date = July 28, 2008
operating_system = Cross-platform
genre = Development Library
license = GNU Lesser General Public License
website = http://www.fox-toolkit.org
The FOX toolkit is an open source, cross-platform widget toolkit, that is, a library of basic elements for building a graphical user interface (GUI). FOX stands for Free Objects for X.

It features a (currently hard-wired) Windows 95-style theme available for both Microsoft Windows itself as well as the X Window System (which is used on many UNIX and UNIX-like operating systems).

The FOX toolkit has been released under the GNU Lesser General Public Licence. Development began 1997 by Jeroen van der Zijp while he was affiliated at CFDRC. Since then, Jeroen van der Zijp maintains the core library and test applications, with the help of a growingFact|date=September 2007 user community.

The FOX toolkit is written in C++. Bindings are available for Python, Ruby and Eiffel. The FOX source code distribution supports building with many different (commercial and free) C++ compilers.

Cross-platform compatibility

FOX differentiates itself in the following way from other cross-platform toolkits:
*Tk is a cross-platform toolkit but does not have all of the widgets that FOX considers desirable.
*Qt has a different licensing model (which may require a commercial license in some cases where FOX will not)
*wxWidgets promotes the use of native widgets on each supported platform.
*FLTK is a fast, low-footprint library that supports rapid application development, and requires less code to use, but lacks advanced widgets.

All of these toolkits have some support for programming natively on Mac OS and/or Mac OS X platforms, which FOX currently does not support.

FOX uses a technique similar to the Java Swing-style approach to display a graphical user interface to the screen, using only graphical primitives available on that platform, as opposed to the original Java AWT-style approach which used native widgets. This means that applications will have a similar look and feel across platforms. In theory, porting FOX to a new platform should also be easier than implementing support for native widgets.

On the downside, it usually means that FOX applications will look and feel different from native applications for those platforms, which some users may find confusing. Also, certain native platform features may not be available immediately, such as comprehensive printing support, support for anti-aliased fonts, or internationalized input handling, because they will need to be re-implemented in a cross-platform way before they can be used in FOX.

Messaging system

FOX offers a transparent bi-directional messaging system. Each Widget sends its message to a certain target. Each message is composed by a selector that identifies its kind and an id that is unique and provided by the widget's enumeration. The advantage is that each widget can call a target widget's method in a transparent manner, even if the method does not exist. Vice versa, in the implementation of the individual message handler, since the sender is known, the target can also dispatch a message to the sender. This is a particularly important feature in component oriented software, where components may be written by different people, or even different organizations.

The FOX messaging system simplifies the GUI update strategy: during widget update, the widgets can ask from their targets to update them. This means that a command message does not also have to explicitly update any widgets as it is typical. In case an application implements N command messages each updating M widgets, then M*N updates must be executed and at most M*N messages must be implemented. On the other hand, if widgets request for update, only N command messages and at most M update messages are implemented. This strategy separates the GUI update from data changes, making the GUI a real-time reflection of the underlying data structures.

Hello World

The following example creates a FOX application and a dialog with a button:


#include "fx.h" int main(int argc, char *argv [] ) { FXApp application("Hello", "FoxTest"); application.init(argc, argv); FXMainWindow *main=new FXMainWindow(&application, "Hello", NULL, NULL, DECOR_ALL); new FXButton(main, "&Hello, World!", NULL, &application, FXApp::ID_QUIT); application.create(); main->show(PLACEMENT_SCREEN); return application.run();}

Software built on FOX

* CFD-View is a post-processing developed by ESI Group.
* Abaqus/CAE is the pre- post- processor of the Abaqus finite element suite. [cite web|url=http://www.simulia.com/products/products_legal_fox.html|title=Abaqus FEA / Version 6.7 Open Source Programs|accessdate=2007-12-09]
* Intel Modular Test Architecture (IMTA)
* LinkCAD is a commercial format-conversion application for various CAD formats
* TMP Vision and SLIM were designed to meet the needs of complex FEA models.
* Kerkythea, a multimethod render system
* Acronis True Image, and other Acronis products [cite web|url=http://www.acronis.com/homecomputing/support/licensing/|title=Acronis licensing information|accessdate=2007-12-08 ]
* Goggles Music Manager, a music collection manager and player
* xfe, a graphical file manager for the X Window System

See also

* Widget toolkit
* List of widget toolkits
* Qt
* wxWidgets
* GTK+
* FLTK
* VCF
* Juce

References

External links

* [http://www.fox-toolkit.org/ Project homepage]
* [http://www.kerkythea.net/joomla/index.php?option=com_content&task=view&id=50&Itemid=1 Jeroen's interview at Kerkythea]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • FOX-Toolkit — Entwickler Entwicklergemeinschaft Aktuelle Version 1.6.43 (29. Januar 2011) Betriebssystem X11 (Unix Derivate), Windows Kategorie Klassenbibli …   Deutsch Wikipedia

  • FOX Toolkit — est une bibliothèque logicielle permettant la réalisation d interface graphiques, FOX signifiant Free Objects for X. Il s agit d un outil libre sous licence LGPL[1] et multiplate forme. Il est en effet disponible sous Windows et pour le système… …   Wikipédia en Français

  • FOX toolkit — У этого термина существуют и другие значения, см. Fox (значения). FOX Toolkit Тип библ …   Википедия

  • FOX — bezeichnet: einen Fernsehsender in den USA, siehe Fox Network dessen deutsche Sparte Fox Channel die Filmproduktionsfirma 20th Century Fox eine amerikanische Sportartikel Firma für Motocross und Mountainbiking, siehe Fox Racing Inc. eine… …   Deutsch Wikipedia

  • Fox — (engl. Fuchs) bezeichnet: ein TV Network in den USA, siehe Fox Broadcasting Company dessen deutsche Sparte FOX Channel einen amerikanischen Nachrichtensender, siehe Fox News Channel die Filmproduktionsfirma 20th Century Fox (bis 1934: Fox Film… …   Deutsch Wikipedia

  • Toolkit — may refer to an assembly of tools.It may also refer to:* Widget toolkit * Toolkits for User InnovationSpecific toolkits include:* Abstract Window Toolkit * Accessibility Toolkit * Adventure Game Toolkit * B Toolkit * Battlefield Mod Development… …   Wikipedia

  • Fox (значения) — Fox, FOX (англ. лиса): FOX toolkit. Fox Broadcasting Company. Fox (Россия) См. также Fox (БПЛА) …   Википедия

  • Fox (disambiguation) — The fox is a carnivorous animal.Fox may also refer to: Animals * The fox terrier, a dog breed Sport * Cruzeiro Esporte Clube, a Brazilian football team who carry the nickname The Foxes (Portuguese: A Raposa ) * Leicester City FC, an English… …   Wikipedia

  • Toolkit — Sur les autres projets Wikimedia : « Toolkit », sur le Wiktionnaire (dictionnaire universel) Toolkit est un mot anglais qui est utilisé en informatique et le plus souvent dans le contexte des interfaces graphiques. Ce mot, qui… …   Wikipédia en Français

  • Dojo Toolkit — Developer(s) Dojo Foundation Stable release 1.6.1 / May 20, 2011; 5 months ago ( …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”