an app called FOX Control Panel is available to change the color scheme of all FOX applications system-wide. It ships with the main FOX Toolkit package. 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. Internals Dependencies Under hood it depends on the cross-platform libraries, which include the following: Open GL OpenGL Utility Library libjpeg libpng LibTIFF zlib (lz) bzip2 for file compression Hello World The following example creates a FOX application and a dialog with a button on C++: #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(); } It is also possible to create dialogs with Python 2.2 and Ruby: FXPy #! /usr/bin/env python3 from FXPy.fox import * import sys def runme(): app = FXApp("Hello", "Test") app.init(sys.argv) main = FXMainWindow(app, "Hello", None, None, DECOR_ALL) button = FXButton(main, "&Hello, World!", None, app, FXApp.ID_QUIT) app.create() main.show(PLACEMENT_SCREEN) app.run() if __name__ == "__main__": runme() FXRuby require 'fox16' include Fox application = FXApp.new("Hello", "FoxTest") main = FXMainWindow.new(application, "Hi", nil, nil, DECOR_ALL) FXButton.new(main, "&Hello, World!", nil, application, FXApp::ID_QUIT, LAYOUT_FILL_X | BUTTON_TOOLBAR |