Recent Changes for wxPython
=====================================================================
+2.9.0.0
+-------
+*
+
+wxGTK: Implemented support for underlined fonts in wx.StaticText
+
+wxGTK: wx.TopLevelWindow.SetSizeHints size increments now work
+
+Added wx.EventBlocker class
+
+wxGTK: make wx.TopLevelWindow.GetSize() return the size of the window
+including the decorations and updated SetSize() to account for this as
+well.
+
+wxMSW: For consistency with wxGTK, when a top level window is
+minimized the size returned from GetSize will be the restored size,
+not the size of the icon window.
+
+wxGTK: For consistency with wxMSW, when a top level window is
+minimized the size returned from GetClientSize will be (0,0).
+
+wxGTK: Color cursors now supported.
+
+Added wx.DC.StretchBlit() for wxMac and wxMSW (Vince Harron)
+
+Added support for labels for toolbar controls (Vince Harron)
+
+wxGTK: Implemented support for underlined fonts in wx.StaticText.
+
+wxGTK: Setting foreground colour of single line wx.TextCtrl now works.
+
+wxMac: Corrected top border size for wxStaticBox with empty label (nusi)
+
+wx.Window.IsEnabled() now returns false even if the window parent, and
+not the window itself, is disabled and added IsThisEnabled()
+implementing the old IsEnabled() behaviour.
+
+wxGTK: Now using the native tab traversal functions instead of
+simulating it ourselves.
+
+Generating wx.NavigationKeyEvent events doesn't work any more under
+wxGTK (and other platforms in the future), use wx.Window.Navigate() or
+NavigateIn() instead.
+
+
+
+
+
+
+2.8.3.1
+-------
+*
+
+wxGTK: Make wx.NO_BORDER style work with wx.RadioBox (patch 1525406)
+
+Update to 0.9.1 of TreeMixin.
+
+
+
+
+2.8.3.0
+-------
+* 22-March-2007
+
+Added wx.ToolBar.SetToolNormalBitmap and SetToolDisabledBitmap
+methods. (Keep in mind however that the disabled bitmap is currently
+generated on the fly by most native toolbar widgets, so this
+SetToolDisabledBitmap method won't have any affect on them...)
+
+Refactored the inspection tool such that it can be used as a wx.App
+mix-in class as it was used before (with the wx.lib.mixins.inspect
+module) and also as a non mix-in tool (using wx.lib.inspect.InspectionTool).
+
+Add wx.lib.mixins.treemixin from Frank Niessink.
+
+Added the wx.SizerFlags class, and also added AddF, InsertF and
+PrependF methods to wx.Sizer. The wxSizerFlags class provides a
+convienient and easier to read way to add items to a sizer. It was
+added as a new set of methods of the wx.Sizer class so as to not
+disturb existing code. For example, instead of writing::
+
+ sizer.Add(ctrl, 0, wx.EXPAND | wx.ALL, 10)
+
+you can now write::
+
+ sizer.AddF(ctrl, wx.SizerFlags().Expand().Border(wx.ALL,10))
+
+
+Will Sadkin provided a patch for the wx.lib.masked package that fixes
+its support for using the navigation keys on the numeric keypad.
+
+wx.lib.plot: patch #1663937 to allow user to turn off scientific
+notation on plot.
+
+wxGTK: Most of the remaining TODOs for the wx.GraphicsContext on wxGTK
+have been done. This includes implementations for GetTextExtent,
+Clip, DrawBitmap, fixing the drawing position of text to be at the
+upper left corner instead of the baseline, etc.
+
+wx.lib.customtreectrl patches from Andrea:
+
+ 1. ExpandAll has been renamed as ExpandAllChildren, and the new
+ ExpandAll now takes no input arguments (consistent with
+ wx.TreeCtrl)
+
+ 2. ctstyle keyword is now defaulted to 0: every style related to
+ CustomTreeCtrl and the underlying wx.PyScrolledWindow should be
+ declared using the keyword "style" only. For backward
+ compatibility, ctstyle continues to work as I merged ctstyle and
+ style in the __init__ method.
+
+ 3. GetClassDefaultAttributes is now a classmethod.
+
+ 4. UnselectAll bug fixed.
+
+
+Renamed the wx.lib.inspect and wx.lib.mixins.inspect modules to
+inspection, in order to avoid conflicts with the inspect module in the
+standard Python library.
+
+Lots of changes to XRCed from Roman Rolinsky:
+
+ * Preferences for default "sizeritem" parameters for new panels and
+ controls can be configured ("File">"Preferences...").
+
+ * Implemented comment object for including simple one-line comments and
+ comment directives as tree nodes. No validation is performed for a
+ valid XML string so comments must not contain "-->". Comment directive
+ is a special comment starting with '%' character, followed by a line
+ of python code. It is executed using 'exec' when the resource file is
+ opened. This is useful to import plugin modules containing custom
+ handlers which are specific to the resource file, hovewer this is of
+ course a security hole if you use foreign XRC files. A warning is
+ displayed if the preference option 'ask' is selected (by default).
+
+ * Added support for custom controls and plugin modules. Refer to this
+ wxPythonWiki for the details: http://wiki.wxpython.org/index.cgi/XRCed#custom
+
+ * Tool panel sections can be collapsed/expanded by clicking on the
+ label of a tool group.
+
+ * Some undo/redo and other fixes.
+
+ * Fixes for wxMSW (notebook highlighting, control sizes, tree Unselect).
+
+ * Notebook page highlighting fix. Highlight resizes when the window
+ is resized. ParamUnit spin button detects event handler re-entry
+ (wxGTK probably has a bug in wxSpinButton with repeated events).
+
+ * Fix for dealing with empty 'growable' property, using MiniFrame
+ for properties panel, the panel is restored together with the
+ main window.
+
+
+
+
+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-2007
+
+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
Added New Zealand NZST and NZDT timezone support to wx.DateTime.
wx.Window.GetAdjustedBestSize is deprecated. In every conceivable
-scenario GetBestFitting size is probably what you want to use instead.
+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.)
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
Added wx.lib.delayedresult from Oliver Schoenborn.
-Added wx.lib.expando, a multi-line textctrl that exands as more lines
+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
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 code wxWidgets
+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
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