FOX-Toolkit
aus Wikipedia, der freien Enzyklopädie
FOX-Toolkit | |
---|---|
Entwickler: | Entwicklergemeinschaft |
Aktuelle Version: | 1.6.20 (17. November 2006) |
Betriebssystem: | X11 (Unix-Derivate), Windows |
Kategorie: | Klassenbibliothek |
Lizenz: | modifizierte LGPL |
Deutschsprachig: | nein |
Website: | FOX Toolkit |
FOX ist eine Klassenbibliothek für die plattformübergreifende Programmierung graphischer Benutzeroberflächen (GUIs) in C++. Enthalten sind die für GUI-Bibliotheken üblichen Gestaltungs- und Bedienelemente. Als Besonderheit enthält FOX eine gute Anpassung an die 3D-Bibliothek OpenGL.
Inhaltsverzeichnis |
[Bearbeiten] Programmiersprachen
Obgleich das FOX-Toolkit in C++ geschrieben wurde, existieren Sprachanpassungen für
[Bearbeiten] Aussehen
Wo entsprechende Designentscheidungen nötig wurden, ist das Look and Feel von FOX an Windows angelehnt. FOX kann gegenwärtig anders als manch andere Widget-Sets nicht mit Themen versehen werden.
[Bearbeiten] Beispielprogramm
Das folgende Beispielprogramm implementiert ein einfaches Fenster mit zwei Knöpfen und einem Text-Label in ihm.
#include "fx.h" class FoxTest : public FXMainWindow { FXDECLARE (FoxTest) public: FoxTest (FXApp* a); long onCmdCommand (FXObject*, FXSelector, void*); enum { ID_COMMAND = FXMainWindow::ID_LAST, ID_LAST }; virtual void create (); private: FXLabel *label; protected: FoxTest () {} }; FXDEFMAP (FoxTest) FoxTestMap[] = { FXMAPFUNC(SEL_COMMAND, FoxTest::ID_COMMAND, FoxTest::onCmdCommand), }; FXIMPLEMENT (FoxTest, FXMainWindow, FoxTestMap, ARRAYNUMBER (FoxTestMap)) FoxTest::FoxTest (FXApp *a) : FXMainWindow (a, "FoxTest", NULL, NULL, DECOR_ALL, 50, 50, 200, 60) { FXVerticalFrame *vertFrame = new FXVerticalFrame (this, LAYOUT_FILL_X|LAYOUT_FILL_Y|PACK_UNIFORM_WIDTH); FXHorizontalFrame *horiFrame = new FXHorizontalFrame (vertFrame, LAYOUT_CENTER_X|PACK_UNIFORM_WIDTH|FRAME_RAISED); new FXButton (horiFrame, "Drück mich", NULL, this, FoxTest::ID_COMMAND); new FXButton (horiFrame, "Exit", NULL, getApp (), FXApp::ID_QUIT); label = new FXLabel (vertFrame, "Hallo", NULL, LAYOUT_CENTER_X|LAYOUT_CENTER_Y); } void FoxTest::create () { FXMainWindow::create (); show (); } long FoxTest::onCmdCommand (FXObject*, FXSelector, void*) { label->setText ("Danke!"); return 1; } int main (int argc, char *argv[]) { FXApp* application = new FXApp("FoxyTesting","Test"); application->init (argc, argv); new FoxTest (application); application->create(); application->run(); return 0; }