wxWidgets Logo

About

wxTeam
Features
Feedback
Credits
Datasheets
Screen Shots
Licence
Press
Users
History

About wxUniversal and related projects

wxUniversal | wxMGL | wxX11 | wxMicroWindows

The wxUniversal project

    The wxUniversal port is a SciTech Software-sponsored project to create a set of widgets that are implemented in wxWidgets itself. In all previous ports, with some exceptions, each widget class is a wrapper around an existing implementation on that platform. A wxUniversal-based port therefore needs only need a relatively straightforward effort on each new platform, to provide basic classes such as wxWindow, wxFrame and wxDC. The main reason for wxUniversal is for a wxMGL port (targetting SciTech's MGL API which works on a variety of platforms including DOS). It is also being used for a MicroWindows port (see below).

    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.

The wxMGL project

    SciTech Software have also sponsored wxMGL, a port of wxWidgets to their MGL portability layer, making use of wxUniversal to implement the widgets. MGL supports Windows, Linux, DOS, OS/2, QNX, SMX, RT-Target and other embedded operating systems.

    wxMGL is being developed by Vaclav Slavik.

    See SciTech's wxMGL page, with screenshots and demos of the DOS port.

The wxX11 project

    Julian Smart and Robert Roebling have started the wxX11 port, which uses Xlib and wxUniversal. This will appeal to people who for one reason or another do not wish to use Motif or GTK+ on X11, and it is likely to be a better supported and more functional port than wxMotif.

    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/x11
    
    and minimal documentation in docs/x11. You can use configure with --with-x11.

The wxMicroWindows project

    MicroWindows is a small, embedded windowing system with 2 APIs: Nano-X (X-like functionality) and MicroWindows (cut-down WIN32 functionality, currently supporting only one application running at a time).

    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.


 
 

Quick Links

 
  Tutorials
Mailing Lists
Latest Docs

Community

wxForum
wxCommunity
Applications
Add-ons
wxWiki
 
 
 
 

wx Solutions

 
   
 
 
 

wxWidgets Book

 
 

Buy it From:
Amazon.com
Amazon.co.uk

 
 
 
 

Donate Now

 
 
 
 
SourceForge.net Logo

Site design and update scripts by Kevin Ollivier, with special thanks to Brad Anderson for his improvements to the sidebar, intro table and navbar designs, Bryan Petty for the new wxWidgets blocks graphics and logo text, and to the wxWidgets community for all their helpful suggestions, comments and testing!