An open API service indexing awesome lists of open source software.

https://github.com/devinsmith/fox

Unofficial FOX Toolkit mirror using CMake
https://github.com/devinsmith/fox

fox-toolkit

Last synced: 5 months ago
JSON representation

Unofficial FOX Toolkit mirror using CMake

Awesome Lists containing this project

README

          

The FOX GUI Library
===================
Author: Jeroen van der Zijp

What Is FOX?
------------

FOX is a C++ based Toolkit for developing Graphical User Interfaces easily and
effectively. It offers a wide, and growing, collection of Controls, and
provides state of the art facilities such as drag and drop, selection, as well
as OpenGL widgets for 3D graphical manipulation. FOX also implements icons,
images, and user-convenience features such as status line help, and tooltips.
Tooltips may even be used for 3D objects!

Considerable importance has been placed on making FOX one of the fastest
toolkits around, and to minimize memory use:- FOX uses a number of techniques
to speed up drawing and spatial layout of the GUI. Memory is conserved by
allowing programmers to create and destroy GUI elements on the fly.

Even though FOX offers a large collection of Controls already, FOX leverages
C++ to allow programmers to easily build additional Controls and GUI elements,
simply by taking existing controls, and creating a derived class which simply
adds or redefines the desired behavior.

One of the prime design goals of FOX is the ease of programming; thus, most
controls can be created using a single line of C++ code; most parameters have
sensible default values, so that they may be omitted, and layout managers
ensure that designers of GUI's do not have to worry about precise alignments.

Another nice feature of FOX which significantly reduces the number of lines of
code which have to be written is FOX's ability to have widgets connect to each
other, and passing certain commands between them; for example, a menu entry
Hide Toolbar can be directly connected to the Toolbar, and cause it to hide.

Finally, FOX makes it easy to maintain the state of the GUI in an application
by having the GUI elements automatically updating themselves by interrogating
the application's state. This feature eliminates the large amount of effort
that may go into sensitizing, graying out, checking/unchecking etc. depending
on the application state.

Where to get it?
----------------

You can FTP the complete FOX GUI toolkit from our FTP site:

ftp://ftp.fox-toolkit.org/pub/

The distribution includes this on-line (HTML) documentation you see here.

Mailing List.
-------------

To stay informed, we now have a mailing list for FOX. To subscribe, send mail
to foxgui-users-request@lists.sourceforge.net with the word subscribe in the
message body. Messages to the list can be sent to
foxgui-users@lists.sourceforge.net. FOX announcements will be made through
the foxgui-announce@lists.sourceforge.net list; you can subscribe to this list
by sending a message "subscribe" to the list server at
foxgui-announce-request@lists.sourceforge.net.

Installation.
-------------

Please refer to the file INSTALL. FOX should compile on a large number of
UNIX systems. The current "configure" scripts are however still somewhat
primitive; if you need to make specific alterations to the configure system,
feel free to send them to me so that I may merge them into the main
distribution. The current FOX distribution compiles on Windows NT using the
eXceed system; we expect however to get some core functionality to become
available under the native Windows environment fairly soon.

Getting started.
----------------

To get started programming with FOX, take a look at the tests directory, which
contains some example programs. The best one to look at is probably the
"glviewer" application. Note that you need OpenGL or Mesa on your machine in
order to compile it.

Finding FOX using GNU configure.
--------------------------------

GNU auto configure has features to detect the whereabouts of a library
(AC\_CHECK\_LIB). Unfortunately, it assumes that you're looking for a C
library, not a C++ library, and thus name mangling prevents it from finding
FOX as all of FOX's API are C++.

A special "dummy" C-linkage function was created to allow GNU auto configure
to find the FOX library; you can use it in your configure.in as follows:

AC_CHECK_LIB(FOX, fxfindfox)

Bugs.
-----

Please file bugs and questions to the list foxgui-users@lists.sourceforge.net.
Before filing a bug, please take a moment to download the latest version of
FOX, and make sure the problem still persists:- FOX is being developed fairly
rapidly, and it is possible that some of the problems you may have experienced
have already been fixed.

License.
--------

The FOX Library proper is licensed under GNU Lesser GPL; all the examples and
demo programs are licensed under GPL.

If you write software based on the FOX library, please include the following
in your About Box, or some other place where a user may be able to see it:

This software uses the FOX Toolkit (http://www.fox-toolkit.org).

Thanks!