Contents Up Previous Next

Changes since 2.4.x

Listed here are the deprecated and incompatible changes made to wxWidgets.

For other changes (such as additional features, bug fixes, etc.) see the changes.txt file located in the docs directory of your wxWidgets directory.

Incompatible changes since 2.4.x
Deprecated changes since 2.4.x


Incompatible changes since 2.4.x

wxEvent and its derivatives losing public variable members

wxEvent and its derivatives do not have their public variable members public any more. Please use Get/Set accessors.

New window repainting behaviour

Windows are no longer fully repainted when resized; use the new style wxFULL_REPAINT_ON_RESIZE to force this (wxNO_FULL_REPAINT_ON_RESIZE still exists but doesn't do anything any more, this behaviour is default now).

Window class member changes

wxWindow::m_font and m_backgroundColour/m_foregroundColour are no longer always set, use GetFont(), GetBack/ForegroundColour() to access them, and they will be dynamically determined if necessary.

Sizers Internal Overhaul

The sizers have had some fundamental internal changes in the 2.5.2 and 2.5.3 releases intended to make them do more of the "Right Thing" but also be as backwards compatible as possible. First a bit about how things used to work:

The main thrust of the new sizer changes was to make behaviour like wxADJUST_MINSIZE be the default, and also to push the tracking of the minimal size to the window itself (since it knows its own needs) instead of having the sizer take care of it. Consequently these changes were made:

At this time, the only situation known not to work the same as before is the following:

win = new SomeWidget(parent);
win->SetSize(SomeNonDefaultSize);
sizer->Add(win);
In this case the old code would have used the new size as the minimum, but now the sizer will use the default size as the minimum rather than the size set later. It is an easy fix though, just move the specification of the size to the constructor (assuming that SomeWidget will set its minsize there like the rest of the controls do) or call SetMinSize instead of SetSize.

In order to fit well with this new scheme of things, all wxControls or custom controls should do the following things. (Depending on how they are used you may also want to do the same thing for non-control custom windows.)

Massive wxURL Rewrite

wxURL has undergone some radical changes.

Minor incompatible changes since 2.4.x


Deprecated changes since 2.4.x