wxWidgets Roadmap

Schedule | To-Do List | Done List

This page represents current thinking about where wxWidgets is going in the near, medium and long-term. It also serves as a schedule for new releases so that both developers and users can know what to expect when, at least approximately.

Note: In the following, the term 'stable' refers to a tested release from the stabilised branch. 'Unstable' or 'development' does not mean that the release will fall over a lot (although it might), but refers to the fact that the unstable branch is subject to a lot of changes and should not normally be used for production-quality applications, unless you really know what you're doing.

We have adopted the Linux kernel style of numbering system where odd minor version numbers are development versions, and even numbers are stable versions. For example, 2.5.x are development releases, and the next 'stable' or final release of it would normally be 2.6 (or 3.0.0 if incrementing a major version).

Bug-fix patches to the stable release (if made) then become point releases of 2.4 (2.4.x) while development continues with wild abandon on 2.5.x until the end of the next development cycle when it is released as 2.6.

Development versions that end up on the FTP site or CD-ROM, as opposed to remaining in the CVS archive, are semi-stable -- i.e. they are checked for compilation and run-time problems, but not as thoroughly as the stable versions.

Note that since much of the wxWidgets effort is voluntary, these are not hard-and-fast deadlines: but we will endeavour to follow them as closely as possible.

This page only shows the things which are still left to do, please look elsewhere to see the complete list of changes between the releases, including the things which are already done.

Please send changes to this page to Julian Smart: julian@wxwidgets.org.

Schedule

RELEASE TYPE SCHEDULED RELEASED TAG DESCRIPTION
2.4.0 Stable 1/2003 2003-01-06 WX_2_4_0 This was a stable release.
2.4.1 Stable 2003-03-01 2003-06-13 WX_2_4_1 This was a stable release.
2.4.2 Stable 2003-09-20 2003-09-23 WX_2_4_2 This is the last releases in 2.4 branch. It was purely a bug-fix release.
2.5.1 Development 2003-09-30 2004-02-23 WX_2_5_1 This was an unstable release.
2.5.2 Development 2004-06-01 2004-05-31 WX_2_5_2 This was an unstable release.
2.5.3 Development 2004-10-17 2004-10-11 WX_2_5_3 This was an unstable release.
2.5.4 Development 2005-02-01 2005-02-24 WX_2_5_4 This was an unstable release.
2.5.5 Development 2005-04-03 2005-04-03 WX_2_5_5 This was an unstable release; the last before 2.6.0.
2.6.0 Stable 2005-04-10 2005-04-21 WX_2_6_0 This was a stable release.
2.6.1 Stable 2005-06-01 2005-06-03 WX_2_6_1 This was a stable release.
2.6.2 Stable 2005-08-01 2005-09-20 WX_2_6_2 This is the latest stable release.
2.6.3 Stable 2006-01-10 2006-03-25 WX_2_6_3 This is a bug-fix release in the stable branch.
2.7.0 Development 2005-12-01 ? WX_2_7_0 First release in new development cycle.
2.8.0 Stable mid 2005? ? WX_2_8_0 Not decided yet (and maybe will be skipped entirely in favour of 3.0).
3.0.0 Stable end 2006? - WX_3_0_0 This stable release will have STL compatibility for compilers that support templates fully. For example the wxString class will derive from std::basic_string<>.

To-Do List

This is a collection of the various things which it would be nice to include in wxWidgets. They may or may not be scheduled or funded. If you're interested in helping with wxWidgets development, one of the small projects below could be a great way to join the team! See also Suggested Projects for a list of projects that are perhaps not as crucial as the ones listed below.

Developers: please feel free to add to these, and delete them when they are done. You can also add to docs/todo.txt in CVS HEAD, and these items will be transferred to this web page in due course.

Documentation

  1. The possibility of moving doc into header files with tool support, or translation to XML with support from scripts (comparison of headers and documentation).
  2. Detailed review of doc accuracy.
  3. wxDC: Precise definition of default/initial state.
  4. wxDC: Pixelwise definition of operations (e.g. last point of a line not drawn).
  5. Events: for all controls state clearly when calling a member function results in an event being generated and when it doesn't.
  6. Document all wxUSE_XXX settings (it would be also nice to centralize their definitions in a single file instead of having them in several different setup.h)
  7. Update the coding standards guide
General

wxMSW

  1. Finish Windows CE port. See the relevant Wiki pages for more details.
  2. More code cleanup: all controls should use MSWGetStyle(), implement DoGetBestSize() and so on
  3. Cleanup wxSlider, the positioning code is messy

wxGTK

  1. Implement wxList/TreeCtrl using native widgets
  2. Use more standard dialogs (colour, maybe open file in 2.4)
  3. GNOME/KDE integration libraries.

wxX11

  1. Some bugs and performance issues need to be addressed.
  2. Implement clipboard, drag and drop.

wxMac

  1. Unicode support
  2. Better way to specify About, Preferences menu ids under wxMac.
  3. wxMac font selector dialog is the generic font selector - implement a selector that looks native.
  4. Fix bug with filenames having non-ASCII characters.
  5. Implement tooltips, context-sensitive help (perhaps as balloon help).
  6. Implement popup window.
  7. Implement toggle buttons.
  8. Implement joystick support.
  9. Integrate patches from AOL.
  10. implement wxTextCtrl::HitTest()
  11. Miscellaneous fixes (approx. 300).

wxUniv

  1. work on the other ports
    1. wxUniv/Qt might be interesting for the hand held devices using Qt as their native toolkit
    2. wxQNX for embedded market

Infrastructure

  1. Improve release engineering, by automating as much as possible. Use SourceForge compile farm (or other facilities) to spin some of the releases using a specification of the type of release, tag to use, etc.
  2. Improve QA: designate QA engineers for specific platforms (this is done informally at present); use SourceForge compile farm (or other facilities) for automated compiles.
  3. Improve mailing list search.

Done List

These items have been moved from the To-Do list.

  1. Build system redesign allowing to easily create add-on libraries
  2. Make it possible for the wxGUI ports to use wxBase library directly
  3. provide a standard implementation of wxRenderer so that the other (i.e. native) ports could use the universal controls as well
  4. make wxListCtrl and wxTreeCtrl really themeable (depends on the previous point as they should still be usable in the normal ports)
  5. Text selection in wxHTML
  6. STLization
  7. use wxEventLoop in all builds
    wxApp and wxDialog should use wxEventLoop objects (the exact class can be customized by user code by overriding some wxApp::CreateEventLoop()) instead of duplicating the same code
  8. Make ODBC Unicode-compatibl (to check)
  9. wxTextCtrl::HitTest() (for MSW and GTK2)
  10. more efficient idle handling