1 2 The FOX GUI Library 3 =================== 4 5 Jeroen van der Zijp <jeroen@fox-toolkit.org> 6 7 8 9 10 11What Is FOX? 12============ 13 14FOX is a C++ based Toolkit for developing Graphical User Interfaces easily and 15effectively. It offers a wide, and growing, collection of Controls, and provides 16state of the art facilities such as drag and drop, selection, as well as OpenGL widgets 17for 3D graphical manipulation. FOX also implements icons, images, and user-convenience 18features such as status line help, and tooltips. Tooltips may even be used for 3D 19objects! 20 21Considerable importance has been placed on making FOX one of the fastest toolkits 22around, and to minimize memory use:- FOX uses a number of techniques to speed up drawing 23and spatial layout of the GUI. Memory is conserved by allowing programmers to create 24and destroy GUI elements on the fly. 25 26Even though FOX offers a large collection of Controls already, FOX leverages C++ to 27allow programmers to easily build additional Controls and GUI elements, simply by taking 28existing controls, and creating a derived class which simply adds or redefines the 29desired behavior. 30 31One of the prime design goals of FOX is the ease of programming; thus, most controls 32can be created using a single line of C++ code; most parameters have sensible default 33values, so that they may be omitted, and layout managers ensure that designers of GUI's 34do not have to worry about precise alignments. 35 36Another nice feature of FOX which significantly reduces the number of lines of code 37which have to be written is FOX's ability to have widgets connect to each other, and 38passing certain commands between them; for example, a menu entry Hide Toolbar can be 39directly connected to the Toolbar, and cause it to hide. 40 41Finally, FOX makes it easy to maintain the state of the GUI in an application by having 42the GUI elements automatically updating themselves by interrogating the application's 43state. This feature eliminates the large amount of effort that may go into sensitizing, 44graying out, checking/unchecking etc. depending on the application state. 45 46 47 48Where to get it? 49================ 50 51You can FTP the complete FOX GUI toolkit from our FTP site: 52 53 54 ftp://ftp.fox-toolkit.org/pub/ 55 56 57The distribution includes this on-line (HTML) documentation you see here. 58 59 60Mailing List. 61============= 62 63To stay informed, we now have a mailing list for FOX. To subscribe, send mail to 64foxgui-users-request@lists.sourceforge.net with the word subscribe in the message body. 65Messages to the list can be sent to foxgui-users@lists.sourceforge.net. 66FOX announcements will be made through the foxgui-announce@lists.sourceforge.net list; 67you can subscribe to this list by sending a message "subscribe" to the list server at 68foxgui-announce-request@lists.sourceforge.net. 69 70 71Installation. 72============= 73 74Please refer to the file INSTALL. FOX should compile on a large number of UNIX 75systems. The current "configure" scripts are however still somewhat primitive; 76if you need to make specific alterations to the configure system, feel free to 77send them to me so that I may merge them into the main distribution. 78The current FOX distribution compiles on Windows NT using the eXceed system; we 79expect however to get some core functionality to become available under the native 80Windows environment fairly soon. 81 82 83 84Getting started. 85================ 86 87To get started programming with FOX, take a look at the tests directory, which contains 88some example programs. The best one to look at is probably the "glviewer" application. 89Note that you need OpenGL or Mesa on your machine in order to compile it. 90 91 92 93Finding FOX using GNU configure. 94================================ 95 96GNU auto configure has features to detect the whereabouts of a library (AC_CHECK_LIB). 97Unfortunately, it assumes that you're looking for a C library, not a C++ library, 98and thus name mangling prevents it from finding FOX as all of FOX's API are C++. 99 100A special "dummy" C-linkage function was created to allow GNU auto configure to 101find the FOX library; you can use it in your configure.in as follows: 102 103 104 AC_CHECK_LIB(FOX, fxfindfox) 105 106 107 108 109Bugs. 110===== 111 112Please file bugs and questions to the list foxgui-users@lists.sourceforge.net. Before 113filing a bug, please take a moment to download the latest version of FOX, and make sure 114the problem still persists:- FOX is being developed fairly rapidly, and it is possible 115that some of the problems you may have experienced have already been fixed. 116 117 118 119License. 120======== 121 122The FOX Library proper is licensed under GNU Lesser GPL; all the examples and demo 123programs are licensed under GPL. 124 125If you write software based on the FOX library, please include the following in your 126About Box, or some other place where a user may be able to see it: 127 128 129 This software uses the FOX Toolkit (http://www.fox-toolkit.org). 130 131 132 133Thanks! 134 135