Home Page ] [ Eiffel Archive ] [ Eiffel Classes and Clusters ]

Arc de Triomphe clipart (2486 bytes)

ez_eiffel - Eiffel Wrappper for EZWGL

Written by Bruce Wielinga.

ez_eiffel.zip (64,961 bytes) - SmallEiffel version
ise_ez_eiffel.tar.gz (39,363 bytes) - ISE Eiffel version
http://www.ign.com.au/~wielinga/Computing.html (for information)
http://www.netlabs.net/hp/richieb/projects.html (Richie Bielak's projects page)
http://www.elj.com/eiffel/bazaar/projects/ez_eiffel/ (bazaar project)


This is the ez_eiffel library, a set of Eiffel wrappers around Maorong Zou's EZWGL widget library, which is avalible from http://www.ma.utexas.edu/~mzou/EZWGL/.

I have written this code under SmallEiffel v(-0.83) on Linux, and have not tested it under other systems. Richie Bielak (http://www.netlabs.net/hp/richieb) has told me that he is working on an ISE Eiffel port.

At present the library has far less then the full fuctionality of EZWGL, however I belive it provides a useful subset at the moment. I have provided wrapers around these widgets:

Most Miscellaneous functions are catered for. Important fuctionality not provided at present is display items and relative widgets, drag and drop, timer events and all OpenGL functionality.

Garbage collection

At present this library is set up to use the Boehm garbage collector ftp://ftp.parc.xerox.com/pub/gc/ for garbage collection of uneeded widgets. If you don't use this then ez_c_glue.c should be compiled without GC_PRESENT defined. The Makefiles in the example directory have lines which can be commented out to remove this dependence.


Untar the package where needed. The ez_c_glue.c file should be complied seperately and linked into the object files during the final link phase. loadpath.se needs to contain the path to the ez_eiffel directory. That's about all.


The documenation for EZWGL is both excellent and extensive, and I can't duplicate it so that it the main document to read. As for using the Eiffel wrapers, I am working on converting the examples from the EZWGL distribution which should provide a basis for understanding how to use this. The Examples I have done are in the appropriatly labeled subdirectorys. Beyond perusing these the best I can ask you is to try to read the source.

The widget class hierachy

one feature, `ez_app', which is an instance of EZ_APPLICATION for control of the overall behaviour of the application
features for control of application. ie: `mainloop', `service_events' etc...
defines constants from EZ.h in eiffel syntax, exports {NONE}
features shared by all widgets inherits EZ_CONTANTS
widgets which may sensably act as parents to others inherits EZ_WIDGET
widgets which possess callbacks. defines feature `callback' to be called when callback is invoked inherits EZ_WIDGET
widgets which may be given a pixmap as a label, but not text inherits EZ_WIDGET
widgets which may have any label inherits EZ_PIXMAPLABELABLE

Other widget types inherit from these. Although there exists a feature called `configure' in EZ_WIDGET which paraleles the ez_configure_widget function of the EZWGL library, most configureation options are also wraped in specific functions, which I think are preferable since they offer compile time type checking.

Bruce Wielinga,

Home Page ] [ Eiffel Archive ] [ Eiffel Classes and Clusters ]