FOX-Toolkit

Aus MARJORIE-WIKI
Wechseln zu: Navigation, Suche
FOX-Toolkit
Entwickler Entwicklergemeinschaft
Aktuelle Version 1.6.43
(29. Januar 2011)
Betriebssystem X11 (Unix-Derivate), Windows
Kategorie Klassenbibliothek
Lizenz modifizierte LGPL (Freie Software)
Deutschsprachig ja
fox-toolkit.org

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.

Programmiersprachen[Bearbeiten]

Obgleich das FOX-Toolkit in C++ geschrieben wurde, existieren Sprachanpassungen für

Aussehen[Bearbeiten]

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.

Beispielprogramm[Bearbeiten]

Die Beispielanwendung im Screenshot


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();
}

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

Info Sign.svg Dieser Wikipedia-Artikel wurde, gemäß GFDL, CC-by-sa mit der kompletten History importiert.