Future Ports

Qt

A wxQt port is under discussion. Roberto Alsina (ralsina@unl.edu.ar) has volunteered to take a look at this port. The idea is to partly unify the KDE and GNOME camps who currently use Qt and GTK toolkits respectively. With wxQt and wxGTK, developers will be able to write for both desktops simultaneously, plus any other platforms supported by wxWidgets.

Since Roberto has limited time available, we'd very much welcome other volunteers.

Mac

The following people responded to my appeal for wxMac 2 volunteers, in Autumn 1998:

Stefan Csomor has made two releases, and is now integrating wxMac with the main 2.1 codebase.

Many thanks to Greg Galanos at Metrowerks for donating a copy of CodeWarrior Professional 4 to the wxWidgets project.

BeOS

Vadim Zeitlin, Ken Crandall, Kendall Bennett of SciTech Software, Ken McDonald (Technical Writer, Be, Inc.), and Thomas Fletcher are taking an interest in a wxBeOS port. Be Inc. have donated copies of BeOS to help the wxWidgets port.

See also the Mailing list page.

OS/2

This port, by David Webster, is proceeding!

I have finished most of the non-GUI object work and am laboring through the Gdi objects right now and should be done in a couple of weeks. At that time I will flesh out the event subsystem and port the huge wxWindow, wxFrame, and wxMenu classes allowing the building of a native OS/2 PM "minimal" sample. I will then add Gui widgets, piece by piece, hitting Dnd last. (April 28th, 1999)

See also the Mailing list page.

April 2000: a screenshot of the minimal sample is available!

Windows CE

After Unicode support is added, it should be pretty easy to do a basic Windows CE port, by ifdefing the wxMSW source. I will have a look at it after I upgrade my disk and purchase NT 4.0 (required for the Windows CE emulator), but meanwhile, I'd love someone to have a go.

MGL

From Stephane Peter :
I am working with SciTech Software on a portable GUI framework project that
will work on top of their free SciTech MGL library that comes with a widget
rendering library (www.scitechsoft.com/dp_mgl.html). 

We've deciding that the best way to do this project was to port wxWidgets to
run on top of MGL. Since MGL is becoming a very portable library in itself,
that would increase wxWidgets' portability as well. MGL is currently running on
Windows, DOS, Linux, QNX, OS/2, and more ports are on the way.
This project might be of interest to anyone think of porting wxWidgets 2 to a platform that's not currently supported. (Note that the result would not be 'native look and feel'.)

Contact at SciTech Software: Kendall Bennett.

QNX/Photon

Thomas Fletcher is at the very early stages of a QNX/Photon port.

FLT

Doug Henry writes:

I am currently porting a ton of SGI RapidApp applications to a toolkit called FLTK (www.fltk.org). It is a rendered GUI toolkit with excellent support for OpenGL. I currently write applications using wxWidgets/GTK for Linux and like the framework very much.

Therefore I am taking on the task of including FLTK functionality in wxWidgets. FLTK does not have many of the widgets available in other toolkits (GTK for example) but I think I can work around most of the missing data.


How to write a new port

Note: wxStubs, mentioned below, is not currently synchronised with the wxWidgets API, so please contact wxwin-developers before trying to use it.

With wxStubs, a template for a new port, it's relatively easy to port wxWidgets 2 to a new platform. wxStubs is available from the CVS archive. You also need the documentation. You may find it instructive to download one or more of the other ports.

Here are some suggested steps, assuming your GUI is called 'newgui':

  1. Subscribe to wxwin-developers and mention your intentions (other people might volunteer to help);
  2. Get CVS up and running on your system, and fetch the wxWin sources;
  3. Copy the stubs directories to include/wx/newgui and src/newgui;
  4. Modify the files in include/wx to include platform-specific files where necessary (e.g. include/wx/window.h itself includes include/wx/newgui/window.h);
  5. Compile the 'newgui' stubs, making small alterations to common files such as src/common/filefn.cpp to work on this platform. Use the __WXNEWGUI__ symbol to indicate things specific to the newgui user interface, and __YOUROS__ to indicate things specific to the OS. (The reason for the distinction: it might be possible to also compile, say, wxGTK on your OS, in which case __YOUROS__ would still hold for OS functions, but __WXGTK__ would be used for the GUI.) See docs/symbols.txt for a list of OS/GUI symbols - add your own if necessary.
  6. Start filling in the stubs!
The source directories you would be compiling are:
src/common          ; Common to all ports
src/generic         ; Some generic windows, dialogs, etc.: you may not
                    ; need all of them if there are equivalents for your GUI
src/newgui          ; Your platform-specific files
Please let me know if there's anything I can do or explain that would help, since I'm obviously very keen to encourage new ports.

See also: Join the team.