wxUniversal and related projects |
wxUniversal can be compiled on platforms that have existing ports, such as Windows, but the wxUniversal widgets will replace the native ones. At present it's not possible to use the wxUniversal widgets from a regular wxWidgets port: but in future we may well make that possible, e.g. by changing the way the universal widgets are compiled in non-__WXUNIVERSAL__ mode.
wxUniversal supports a theme system to change the look and feel, and there are currently two themes: WIN32 and GTK+. The default theme is set by the framework using the WXTHEME environment variable, and if that doesn't exist, by using the closest match to the environment it's currently running on, or failing that, the first in the supported-theme list.
wxUniversal is primarily developed by Vadim Zeitlin.
In July 2001, wxUniversal was merged from its separate development branch into the CVS trunk. The minimal and widgets samples compile and run fine under Windows. You can compile wxUniversal with VC++ under Windows by using src/wxUniv.dsp, and then use the UnivDebug and UnivRelease targets in the minimal and widgets sample project files.
You can download a WIN32 binary of the widget sample here. All of the widgets in this sample are 'universal', generic ones - believe it or not!
See also the Framework Diagram by Marco Cavallini, showing the relationships between the various ports.
wxMGL is being developed by Vaclav Slavik.
See SciTech's wxMGL page, with screenshots and demos of the DOS port.
It is also aimed at embedded projects that cannot afford the overhead of a conventional X-based widget set. Many embedded projects are now using variants of X11, running on embedded Linux or a smaller operating system such as eCos. It is intended to eventually have wxX11 running on NanoX (Microwindows). In fact this effort will take over from the wxMicroWindows port (below) since the NanoX API permits multiple processes which MicroWindows/WIN32 currently does not.
As of February 13th 2002, it is early days for this port (10 days in!) but swift progress is being made. We anticipate that by the end of March, a useful wxX11 port will exist. Common X11-based code will be shared between wxMotif and wxX11 where practical.
If you want to help, you'll find the X11-specific sources in CVS here:
include/wx/x11 src/x11and minimal documentation in docs/x11. You can use configure with --with-x11.
You can compile and run MicroWindows under Linux using an emulated frame buffer, so you don't need any special hardware to try it out. It's of particular interest to me (Julian Smart) because there's a port of MicroWindows to Red Hat's eCos operating system: an OS intended for 'deeply embedded' systems with limited memory. eCos runs on lots of processors and has been ported (along with MicroWindows) to the iPAQ PDA. So wxMicroWindows is (IMO) a good route to showing off wxWidgets running on an embedded system. A connection between wxWidgets and eCos already exists via the host-side tool that I've been porting from MFC to wxWidgets, the eCos Configuration Tool, which allows you to choose the features you want in eCos.
wxMicroWindows is at a very preliminary stage, but the minimal sample compiles and (almost) runs. You can try out and help debug wxMicroWindows by downloading the latest sources from CVS, and following the instructions in docs/microwin/readme.txt.
There's a screenshot of the wxWidgets minimal sample beginning to work under MicroWindows on Linux, here.