[Chandler-dev] wxPython r123 tarball

Robin Dunn robin at alldunn.com
Tue Nov 14 11:24:09 PST 2006

I've just updated chandler/Makefile to use the r123 tarball for 
wxPython.  Next time you do an update of your chandler source tree 
you'll need to also do a "make install" to get the newest wxPython binaries.

This wx tarball is basically the same as the official wxPython 
release, and includes lots of new features.  I've pulled out the entries 
from the CHANGES.txt file that were added to OSAF's wx since the last 
major pull from the wxWidgets CVS.  Some of these may not apply to 
OSAF's wx (for example, we were already using the native toolbar on OSX) 
  and some may already be slightly out of date, but this will give you a 
feeling for how much has changed.  On the other hand, I needed to make 
only two very small changes to Chandler code to be able to use this new 
version of wx, so that's a very good sign.

New stuff since the last merge from wx CVS:

The beginnings of support for RTL languages has been added, thanks to
a Google SoC project.

Added wx.lib.dragscroller from Riaan Booysen.  It provides a helper
class that can used to scroll a wx.ScrolledWindow in response to a
mouse drag.

Applied patch 1551409: Adds support for indeterminate mode gauges.

wxMac: I've turned on the compile option for using the native toolbar
on the Mac now that it supports hosting of controls.  If the toolbar
is managed by the frame via either CreateToolBar() or SetToolBar()
then the native toolbar will be used.  Additional toolbars, or
toolbars that are not children of the frame, are managed by sizers or
what-not will still use the emulated toolbar because of platform
restrictions in how/where the native toolbar can be used.

Added Python properties for many of the getter/setter methods of wx
classes.  In order for the names to be predicatble for somebody
already familiar with wxPython the property names are simply the name
of the getter with the "Get" dropped.  For example, wx.Window has a
property named "Size" that maps to GetSize and SetSize.  So far there
is only one known name conflict using this naming convention, and that
is wx.KeyEvent.KeyCode, however since KeyCode was formerly a
compatibility alias for GetKeyCode (and has been for a long time) it
was decided to just switch it to a property.  If you want to use the
method then change your calls to event.KeyCode() to
event.GetKeyCode(), otherwise you can use it as a property just by
dropping the parentheses.

Updated the C++ code for wx.gizmos.TreeListCtrl from the wxCode
project.  This has resulted in some minor API changes, most of which
were worked around in the wrapper code.

Added wx.lib.delayedresult from Oliver Schoenborn.

Added wx.lib.expando, a multi-line textctrl that exands as more lines
are needed.

wx.Image.Scale and Rescale methods now take an extra parameter
specifying type of method to use for resampling the image.  It
defaults to the current behavior of just replicating pixels, if
wx.IMAGE_QUALITY_HIGH is passed then it uses bicubic and box averaging
resampling methods for upsampling and downsampling respectively.

Added the wx.lib.buttonpanel module, which is a tweaked version of
Andrea Gavana's FancyButtonPanel module.

Added the wx.lib.flatnotebook module, from Andrea Gavana.

Renamed wx.FutureCall to wx.CallLater so it is named more like
wx.CallAfter.  wx.FutureCall is now an empty subclass of wx.CallLater
for compatibility of older code.

Added the wx.lib.customtreectrl module from Andrea Gavana.

Added ChangeSelection to wx.BookCtrl (the base class for wx.Notebook
and other book controls) that is the same as SetSelection but doesn't
send the change events.

Added wx.TextCtrl.ChangeValue() which is the same as SetValue() but
doesn't send the text changed event.

For consistency, all classes having an Ok() method now also have
IsOk(), use of the latter form is preferred although the former hasn't
been deprecated yet

Added the wx.AboutBox() function and wx.AboutDialogInfo class.  They
provide a way to show a standard About box for the application, which
will either be a native dialog or a generic one depending on what info
is provided and if it can all be shown with the native dialog.

The code in the animate contrib has been moved into the core wxWidgets
library, and refactored a bit along the way.  For wxPython it still
exists in the wx.animate module, but has basically been reduced to two
classes, wx.animate.Animation, and wx.animate.AnimationCtrl.  You load
the animated GIF (and hopefully there will be other supported formats
in the near future) in the Animation object, and then give that to the
AnimatedCtrl for display.  See the demo for an example.  There is also
still a GIFAnimationCtrl class that provides some level of backwards
compatibility with the old implementation.

wxMac: The compile option that turns on the use of CoreGraphics (a.k.a
Quartz) for wxDC is now turned on by default.  This means that all
drawing via wxDC is done using the new APIs from apple, instead of the
old Quick Draw API.  There are, however, a few places where Quartz and
wxDC don't fit together very well, mainly the lack of support for
logical drawing operations such as XOR, but there is work in progress
to provide other ways to do the same sort of thing that will work with
Quartz and also on the other platforms.

The first parts of a new 2D drawing API has been added with the
wx.GraphicsPath and wx.GraphicsContext classes.  They wrap GDI+ on
Windows, Cairo on wxGTK and CoreGraphics on OS X.  They allow path-based
drawing with alpha-blending and anti-aliasing, and use a floating
point cooridnate system.  Currently they can only target drawing to
windows, but other wx.DC backends are forthcoming.  The APIs may
evolve a bit more before they are finalaized with the 2.8 release, but
there is enough there now to get a good feel for how things will work.
There is also a transitional wx.GCDC class that provides the wx.DC API
on top of wx.GraphicsContext.

Added a wx.AutoBufferedPaintDC that is a subclass of wx.PaintDC on
platforms that do double buffering by default, and a subclass of
wx.BufferedPaintDC on the platforms that don't.  You can use this
class to help avoid the overhead of buffering when it is not
needed. There is also a wx.AutoBufferedPaintDCFactory function that
does a little more and actually tests if the window has
double-buffering enabled and then decides whether to return a
wx.PaintDC or wx.BufferedPaintDC.  This uses the new
wx.Window.IsDoubleBuffered method.

Fixed a bug in the MaskedEdit controls caused by conflicting IsEmpty

Patch #1579280: Some mimetype optimizations on unix-like systems.

wxMac: Several wx.webkit.WebKitCtrl enhancements/fixes, including:

     - new methods for increasing/decreasing text size, getting
       selection, getting/setting scroll position, printing, enabling
       editing, and running JavaScripts on the page.

     - added new event (wx.webkit.WebKitBeforeLoadEvent) for catching,
       and possibly vetoing, load events before they occur.

     - wx.webkit.WebKitCtrl now fires mouse events for certain events
       that it was eating before. This improves wxSplitterWindow
       resizing behavior.

     - refactoring of the sizing logic to move the Cocoa view.  Tested
       with splitter windows, panels, notebooks and all position
       correctly with this.

Some improvements to the drawing code in CustomTreeCtrl.

Fixed refcount leak in wx.Window.GetChildren.

wxGTK:  The wx.ALWAYS_SHOW_SB style is now supported.

Fixed name errors in the old wxPython package namespace.  As a
reminder, use of this package is deprecated and you are encouraged to
switch your programs over to the wx package.

Fixed wx.glcanvas.GLCanvas.SetCurrent to be compatible with prevoius

Added wx.StandardPaths.GetTmpDir.

Bug fixes in the wx.ListCtrl on Mac from Kevin Olivier, allowing it to
send events properly again.  There is also a new native implementation
of wx.ListCtrl available, which will be used for wx.LC_REPORT style
list controls if you set the "mac.listctrl.always_use_generic"
SystemOption to zero.  In a future release this will be the default.

Added a sample to the demo that shows some of what can be done with
the new wx.GraphicsContext and wx.GraphicsPath classes.

Patch [ 1583183 ] Fixes printing/print preview inconsistencies

Add events API to wxHtmlWindow (patch #1504493 by Francesco Montorsi)

Added wxTB_RIGHT style for right-aligned toolbars (Igor Korot)

Added New Zealand NZST and NZDT timezone support to wx.DateTime.

wx.Window.GetAdjustedBestSize is deprecated.  In every conceivable
scenario GetEffectiveMinSize is probably what you want to use instead.

wx.Image: Gained support for TGA image file format.

wx.aui: The classes in the wx.aui module have been renamed to be more
consistent with each other, and make it easier to recognize in the
docs and etc. that they belong together.

     FrameManager -->       AuiManager
     FrameManagerEvent -->  AuiManagerEvent
     PaneInfo -->           AuiPaneInfo
     FloatingPane -->       AuiFloatingPane
     DockArt -->            AuiDockArt
     TabArt -->             AuiTabArt
     AuiMultiNotebook -->   AuiNotebook
     AuiNotebookEvent -->   AuiNotebookEvent

wx.lib.customtreectrl: A patch from Frame Niessink which adds an
additional style (TR_AUTO_CHECK_PARENT) that (un)checks a parent when
all children are (un)checked.

wx.animate.AnimationCtrl fixed to display inactive bitmap at start
(patch 1590192)

Patch from Dj Gilcrease adding the FNB_HIDE_ON_SINGLE_TAB style flag
for wx.lib.flatnotebook.

wx.Window.GetBestFittingSize has been renamed to GetEffectiveMinSize.
SetBestFittingSize has been renamed to SetInitialSize, since it is
most often used only to set the initial (and minimal) size of a

The QuickTime backend for wx.media.MediaCtrl on MS Windows works
again.  Just pass szBackend=wx.media.MEDIABACKEND_QUICKTIME to the
constructor to use it instead of the default ActiveMovie backend,
(assuming the quicktime DLLs are available on the system.)

Robin Dunn
Software Craftsman
http://wxPython.org  Java give you jitters?  Relax with wxPython!

More information about the chandler-dev mailing list