Recent Changes for wxPython
=====================================================================
-2.7.0.1
+2.8.1.1
-------
-*
+* 19-Jan-2007
+
+wxMSW: Fix lack of spin control update event when control lost focus
+
+Added a typeId property to the PyEventBinder class that holds the
+eventType ID used for that event. So when you need the eventType
+(such as when sending your own instance of standard events) you can
+use, for example, wx.EVT_BUTTON.typeId instead of
+wx.wxEVT_COMMAND_BUTTON_CLICKED. Note that there are a few composite
+events, such as EVT_MOUSE and EVT_SCROLL, that will actually bind
+multiple event types at once, and in these cases the typeId property
+may not give you what you want. You should use te component events in
+these cases.
+
+PyCrust now has an option for showing/hiding the notebook.
+
+wxMSW: Corrected drawing of bitmaps for disabled menu items.
+
+Enhanced the wx.lib.mixins.inspect module. In addition to showing a
+PyCrust window it is now a widget browser, which provides a tree
+loaded up with all the widgets in the app, optionally with the sizers
+too, and also a panel displaying the properties of the selected
+window. Run the demo and type Ctrl-Alt-I keystroke (or Cmd-Alt-I on
+the Mac) to see how it works. You can add this to your own apps with
+just a few lines of code.
+
+Added wx.SearchCtrl.[Get|Set]DescriptiveText
+
+wxMac: Added support for the wx.FRAME_FLOAT_ON_PARENT style.
+
+wxMac: the popups used for call tips and autocomplete lists in
+StyledTextCtrl (such as in PyShell) are now top-level float-on-parent
+windows so they are no longer clipped by the bounds of the stc window.
+
+
+
+
+
+2.8.1.0
+-------
+* 8-Jan-2006
+
+Added EVT_TASKBAR_CLICK and use it to show taskbar icon menu on right
+button release, not press, under MSW (bug 1623761)
+
+Added wx.TreeCtrl.CollapseAll[Children]() and IsEmpty() methods
+
+Fix wx.MDIChidFrame.GetPosition() (patch 1626610)
+
+Fix attribute memory leak in wx.grid.Grid::ShowCellEditControl() (patch
+1629949)
+
+wxGTK: Fix for controls on a toolbar being the full height of the
+toolbar instead of their natural height.
+
+wx.lib.customtreectrl patches from Andrea Gavana.
+
+wxMac: Applied patch #1622389, fixing two memory leaks in
+GetPartialTextExtents.
+
+More fixes for the native wx.ListCtrl on Mac.
+
+Added wx.aui.AuiNotebook.GetAuiManager().
+
+Added wx.aui.AuiMDIParentFrame and wx.aui.AuiMDIChildFrame, which
+essentially implement the MDI interface using a normal wx.Frame and a
+wx.aui.AuiNotebook.
+
+
+
+
+2.8.0.1
+-------
+* 11-Dec-2006
+
+Lots of fixes and updates to the AUI classes.
+
+Added wx.CollapsiblePane. On wxGTK it uses a native expander widget,
+on the other platforms a regular button is used to control the
+collapsed/expanded state.
+
+Added the wx.combo module, which contains the ComboCtrl and ComboPopup
+classes. These classes allow you to implement a wx.ComboBox-like
+widget where the popup can be nearly any kind of widget, and where you
+have a lot of control over other aspects of the combo widget as well.
+It works very well on GTK and MSW, using native renderers for drawing
+the combo button, but is unfortunatly still a bit klunky on OSX...
+
+Use system default paper size for printing instead of A4 by default.
+
+Added wx.combo.OwnerDrawnComboBox, which is a ComboCtrl that delegates
+the drawing of the items in the popup and in the control itself to
+overridden methods of a derived class, similarly to how wx.VListBox
+works.
+
+Added wx.combo.BitmapComboBox which is a combobox that displays a
+bitmap in front of the list items.
+
+Added the wx.lib.mixins.inspect module. It contains the InspectMixin
+class which can be mixed with a wx.App class and provides a PyCrust
+window that can be activated with a Ctrl-Alt-I keystroke (or Cmd-Alt-I
+on the Mac.)
+
+Added some modules from Riaan Booysen:
+
+ * wx.lib.flagart: contains icons of the flags of many countries.
+
+ * wx.lib.art.img2pyartprov: makes images embedded in a python file
+ with img2py available via the wx.ArtProvider.
+
+ * wx.lib.langlistctrl: A wx.ListCtrl for selecting a language,
+ which uses the country flag icons.
+
+ * An I18N sample for the demo.
+
+wx.lib.masked: Patch from Will Sadkin. Includes Unicode fixes, plus
+more helpful exceptions and ability to designate fields in mask
+without intervening fixed characters.
+
+Added wx.SearchCtrl, which is a composite of a wx.TextCtrl with optional
+bitmap buttons and a drop-down menu. Controls like this can typically
+be found on a toolbar of applications that support some form of search
+functionality. On the Mac this control is implemented using the
+native HISearchField control, on the other platforms a generic control
+is used, although that may change in the future as more platforms
+introduce native search widgets.
+
+Added a set of button classes to wx.lib.buttons from David Hughes that
+uses the native renderer to draw the button.
+
+
+
+
+2.7.2.0
+-------
+* 7-Nov-2006
+
+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 Frank 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
+widget.
+
+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.)
+
+
+
+
+
+
+2.7.1.3
+-------
+* 26-Oct-2006
+
+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
+versons.
+
+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.
+
+
+
+
+2.7.1.2
+-------
+* 21-Oct-2006
+
+Fixed a bug in the MaskedEdit controls caused by conflicting IsEmpty
+methods.
+
+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.
+
+
+
+
+
+2.7.1.1
+-------
+* 18-Oct-2006
The following deprecated items have been removed:
your overridden methods like this::
def OnBeginDocument(self, start, end):
- # do something here
- return self.base_OnBeginDocument(start, end)
+ # do something here
+ return self.base_OnBeginDocument(start, end)
You can now call the base class method the normal way, like this::
def OnBeginDocument(self, start, end):
- # do something here
- return Printout.OnBeginDocument(self, start, end)
+ # do something here
+ return Printout.OnBeginDocument(self, start, end)
Or like this with super()::
def OnBeginDocument(self, start, end):
- # do something here
- return super(MyPrintout, self).OnBeginDocument(start, end)
-
+ # do something here
+ return super(MyPrintout, self).OnBeginDocument(start, end)
Note that the old way with the "base_*" function still works, but you
will get a DeprecationWarning from calling base_OnBeginDocument. The
Changed how the stock objects (wx.RED, wx.RED_PEN, wx.RED_BRUSH, etc.)
are initialized. They are now created as uninitialized instances
using __new__. Then after the wx.App has been created, but before
-OnInit is called, the .this attribute of each obhect is initialized.
+OnInit is called, the .this attribute of each object is initialized.
This was needed because of some delayed initialization functionality
that was implemented in wxWidgets, but the end result is cleaner for
wxPython as well, and allowed me to remove some ugly code previously
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, managed by sizers 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 toolbar can be used.
-
-Added wx.Window.IsVisible.
+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
Updated the C++ code for wx.gizmos.TreeListCtrl from the wxCode
project. This has resulted in some minor API changes, most of which
-were handled in the wrapper code.
+were worked around in the wrapper code.
+
+Added wx.lib.delayedresult from Oliver Schoenborn.
+
+Added wx.lib.expando, a multi-line textctrl that expands 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. Docs and a demo are still MIA.
+
+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.
+
+
TypeError if the compared object is not compatible, but to just return
a boolean as expected. For example::
- wx.Colour(64,0,64) == 123 ==> False
+ wx.Colour(64,0,64) == 123 ==> False
wxMSW: Fixed (again) sizing/positioning issues of calling Realize on
a wx.ToolBar that is not manaaged directly by a frame and that is
want to force the options to be required then you can just add a True
parameter, like this::
- import wxversion
- wxversion.select("2.6-unicode", True)
- import wx
+ import wxversion
+ wxversion.select("2.6-unicode", True)
+ import wx
Tweaked wx.lib.buttons such that flat buttons (e.g. have no bevel and
a wx.BORDER_NONE style flag) paint themed backgrounds if there are
sample. For example, load the Button sample and then do the following
in the PyShell::
- >>> b = frame.demoPage.GetChildren()[0]
- >>> for x in range(0, 500, 10):
- ... b.Move((x, 50))
- ... app.Yield(True)
- ... wx.MilliSleep(10)
+ >>> b = frame.demoPage.GetChildren()[0]
+ >>> for x in range(0, 500, 10):
+ ... b.Move((x, 50))
+ ... app.Yield(True)
+ ... wx.MilliSleep(10)
wxGTK: Applied wxNO_BORDER patch (#1098374) for text control and combo