EiffelFox is an Eiffel language wrapper for the FOX C++ GUI. The FOX GUI is a powerful, advanced GUI library which is completely portable from Unix to MSWindows without changes to, or conditional compilation of, the application source code. Eiffel has long suffered from the lack of availability of a GUI library which is not only portable, but offers the full power of what developers have come to expect from an advanced GUI library. Shortly after beginning a position as lead developer of a defense-related simulation project, I discovered Eiffel and selected it for use in our project. I quickly became aware of the lack of strong GUI support. After I began to look into GUI libraries available in the open source world, I discovered FOX, a new GUI library in beta release. Because of the pressing need for a powerful GUI in my project, I undertook the task of developing an Eiffel wrapper for FOX on my own time so that I could make it available to the Eiffel community at large and, by eliminating this shortcoming, help to promote Eiffel, which greatly deserves recognition as a language for serious software development. EiffelFox is already being used in a serious application and is, therefore, ready for serious application development.


EiffelFox will compile using the following Eiffel compilers on both Unix and Windows platforms: Please see the respective README file for details (e.g. Please read the release notes particular to your Eiffel compiler. These are found in the files doc/README.ise, doc/README.iss, and doc/README.se), for ISE EiffelBench, Halstenbach iss-base, and SmartEiffel, respectively.

FOX is supported on both Unix and Win32. As such, EiffelFox applications will compile without change on both platforms. Please see the file doc/README.w32 for release notes specific to the Win32 platform.

FOX is supported on both Unix and Win32. As such, EiffelFox applications will compile without change on both platforms. Please see the files doc/README.unix or doc/README.w32, for release notes specific to Unix and Windows platforms, respectively.

Getting EiffelFox to its current successful state has been a cause of much grief to me because of the many bugs I encountered in the current set of Eiffel compilers. As you go through the various release notes, you will notice that I have had to deal with many bugs, some of which I was able to get fixed by the vendor (ISE), some which I had to work-around (Halstenbach), some which I had to fix myself (SmartEiffel), and still others which presented problems with which we are currently stuck.

Unix Installation

You must obtain and build the FOX library separately before building EiffelFox. Any particular beta release of EiffelFox relies upon the interface of a particular release of FOX. The EiffelFox web site, http://darren.hiebert.com/EiffelFox, will contain a link to the version of FOX to which it is tied. The FOX web site is http://www.cfdrc.com/FOX/fox.html.

EiffelFox comes in two pieces: The Eiffel classes and a C++ wrapper library containing code which provides the glue between the Eiffel objects and FOX C++ objects.


There is a collection of material in the "doc" subdirectory. To get started, read the file doc/Introduction.


See the "examples" directory for sample applications.


Note that the widget and message data inheritance hierarchies are fairly deep. Therefore, it is essential to look at the flat-short forms of the classes when you are trying to see what they really provide.


EiffelFox should be considered to be late beta software. Because FOX is still in late beta, any interface changes made to FOX will necessarily be reflected in future releases of EiffelFox, thus necessitating changes to application code. Also, there are still likely to be some changes to feature names and some adjustments to how certain things are done. No doubt, there are bugs waiting to be discovered, but most are likely to be caught by assertion violations.

Thank you for trying out EiffelFox. All feedback is appreciated.

Return Back to the EiffelFox page