]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/docs/CHANGES.txt
always use wxPyPanel
[wxWidgets.git] / wxPython / docs / CHANGES.txt
index 51214a4173dd0e4385d1898ff55c06717716cec5..d92c8795fea31ec89f80a199630e47cf4b99ab3c 100644 (file)
@@ -1,8 +1,9 @@
 Recent Changes for wxPython
 =====================================================================
 
-2.7.0.0
+2.7.0.1
 -------
+*
 
 The following deprecated items have been removed:
 
@@ -20,16 +21,336 @@ The following deprecated items have been removed:
 
     * wx.FontMapper SetConfig method
 
+    * wx.html.HtmlSearchStatus.GetContentsItem method
+
+    * wx.html.HtmlHelpData.GetContents, GetContentsCnt, GetIndex, and
+      GetIndexCnt methods
+
+
 wx.EventLoop is now implemented for wxMac.
 
 Added wxPython wrappers for the new wx.Treebook and wx.Toolbook
 classes. 
 
+wx.DC.BeginDrawing and EndDrawing have been deprecated in the C++
+code, so since they never really did anything before they are now just
+empty stubs in wxPython.
+
+Solved a problem that has been around for a very long time in how C++
+methods are virtualized for overriding in derived Python classes.
+Previously we couldn't do it for methods that needed to also exist in
+the base class wrappers such that they could be called normally.  (The
+reasons are long and complex, but suffice it to say that it was due to
+mixing C++'s dynamic dispatch, and Python's runtime lookup of the
+method attributes resulting in endless recursion of function calls.)
+Because of this problem I used a hack that I have always hated, and
+that is renaming the base class methods with a "base_*" prefix, for
+example wx.Printout.base_OnBeginDocument.  Now that the problem has
+finally been solved I have replaced all the base_Whatever() methods
+with the real Whatever() method as well as a simple wrapper named
+base_Whatever that is marked as deprecated.  So now instead of writing
+your overridden methods like this::
+
+    def OnBeginDocument(self, 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)
+
+Or like this with super()::
+
+    def OnBeginDocument(self, 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
+classes affected by this are:
+
+    * wx.DropSource
+    * wx.DropTarget
+    * wx.TextDropTarget
+    * wx.FileDropTarget
+    * wx.PyLog   (also added the ability to override Flush)
+    * wx.PyApp   (also added the ability to override ExitMainLoop)
+    * wx.Printout
+    * wx.PyPrintPreview
+    * wx.PyPreviewFrame
+    * wx.PreviewControlBar
+    * wx.Process
+    * wx.PyControl
+    * wx.PyPanel
+    * wx.PyScrolledWindow
+    * wx.PyWindow
+    * wx.Timer
+    * wx.grid.PyGridCellRenderer
+    * wx.grid.PyGridCellEditor
+    * wx.grid.PyGridCellAttrProvider
+    * wx.grid.PyGridTableBase
+    * wx.html.HtmlWindow
+    * wx.wizard.PyWizardPage
+
+
+Added the wx.DC.GradientFillConcentric and wx.DC.GradientFillLinear
+methods.
+
+wxGTK: wx.ListBox and wx.CheckListBox are now using native GTK2
+widgets.
+
+Added wx.ListBox.HitTest() from patch 1446207
+
+Bumped up to SWIG 1.3.29.  This provides some more runtime performance
+boosts, gets rid of the dreaded Ptr classes, and some other nice new
+things. 
+
+Added wx.Window.GetScreenPosition and GetScreenRect which returns the
+position of the window in screen coordinates, even if the window is
+not a top-level window.
+
+Added GetResourcesDir and GetLocalizedResourcesDir to
+wx.StandardPaths. 
+
+Added a GetReceivedFormat method to wx.DataObjectComposite.  You can
+use this to find out what format of data object was recieved from the
+source of the clipboard or DnD operation, and then you'll know which
+of the component data objects to use to access the data.
+
+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.
+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
+hidden under the covers.
+
+Added wx.StandardPaths.GetDocumentsDir.
+
+Added wx.RendererNative.DrawCheckButton.
+
+wx.ProgressDialog.Update now returns a tuple of two values.  The first
+is a continue flag (what was returned before) and the second is a skip
+flag.  If the dialog has the wx.PD_CAN_SKIP flag and if the Skip
+button is clicked, then the skip flag is set to True the next time
+Update is called.
+
+A DeprecationWarning is now issued when the old wxPython package is
+imported.  If you are still using the old namespace please convert
+your code to use the new wx package instead.
+
+Added wrappers for Julian's new wxRichTextCtrl class, visible in
+wxPython as wx.richtext.RichTextCtrl window.  It still needs some more
+work, but it is a great start.
+
+wx.lib.mixins.listctrl.TextEditMixin: Fixed the double END_LABEL_EDIT
+event problem in TextEditMixin by checking if the editor was already
+hidden before continuing with the CloseEditor method.  Also added code
+to OpenEditor to send the BEGIN_LABEL_EDIT event and to not allow the
+opening of the editor to continue if the event handler doesn't allow
+it.
+
+wx.StaticBoxSizer now keeps better track of the wx.StaticBox, and it
+will destroy it if the sizer is destroyed before the parent window is.
+
+Added wx.HyperlinkCtrl.
+
+Added battery and power related functions and events (wxMSW only so
+far.)  See wx.PowerEvent, wx.GetPowerType and wx.GetBatteryState.
+
+Added wx.ListCtrl.HitTestSubItem which returns the sub-item (i.e. the
+column in report mode) that was hit (if any) in addition to the item
+and flags.
+
+Added wrappers for wx.ColourPickerCtrl, wx.DirPickerCtrl,
+wx.FilePickerCtrl, and wx.FontPickerCtrl.
+
+Patch #1502016 wx.Image.ConvertToGreyscale now retains the alpha
+channel.
+
+Added wrappers for the wxAUI classes, in the wx.aui module.
+
+Added the PseudoDC class from Paul Lanier.  It provides a way to
+record operations on a DC and then play them back later.
+
+Upgraded to Scintilla 1.70 for wx.stc.StyledTextCtrl.
+
+Added CanSetTransparent and SetTransparent methods to the
+wx.TopLevelWindow class, with implementations (so far) for wxMSW and
+wxMac. 
+
+SetDefaultItem() and GetDefaultItem() are now members of
+wx.TopLevelWindow, not wx.Panel.
+
+wxGTK: Stock items (icons) will be used for menu items with stock
+IDs. 
+
+Added wx.lib.combotreebox from Frank Niessink
+
+Added wx.ImageFromBuffer, wx.BitmapFromBuffer and
+wx.BitmapFromBufferRGBA factory functions.  They enable loading of an
+image or bitmap directly from a Python object that implements the
+buffer interface, such as strings, arrays, etc.
+
+Added wx.App.IsDisplayAvailable() which can be used to determine if a
+GUI can be created in the current environment.  (Still need an
+implementation for wxMSW...)
+
+The wx.html.HTML_FONT_SIZE_x constants are no longer available as the
+default sizes are now calculated at runtime based on the size of the
+normal GUI font.
+
+wx.Colour now includes an alpha component, which defaults to
+wx.ALPHA_OPAQUE.  This is in preparation for allowing various new
+alpha blening functionality using wx.Colour objects, such as drawing
+with pens and brushes on a wx.DC.  
+
+Added wx.NativePixelBuffer, wx.AlphPixelBuffer and related iterator
+and accessor classes.  They allow platform independent direct access
+to the platform specific pixel buffer inside of a wx.Bitmap object.
+
+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.
+
+
+
+
+
+
+2.6.3.3
+-------
+* 15-July-2006
+
+wx.lib.pubsub updates from Oliver Schoenborn:
+    - fixed the hash problem with non-hashable objects
+    - now supports listeners that use \*args as an argument
+      (listener(\*args) was not passing the validity test)
+    - corrected some mistakes in documentation
+    - added some clarifications (hopefully useful for first time
+      users)
+    - changed the way singleton is implemented since old way prevented
+      pydoc etc from extracting docs for Publisher
+
+DocView and ActiveGrid IDE updates from Morgan Hua:
+    New Features: In Tab-View mode, Ctrl-number will take the user to
+    the numbered tab view.  Modified files now show an '*' astrisk in
+    the view title.  Debugger framework can now support PHP debugging.
+    Not important for python development, but at least that means the
+    debugger framework is more generalized.
+
+wx.lib.mixins.listctrl.TextEditMixin: Fixed the double END_LABEL_EDIT
+event problem in TextEditMixin by checking if the editor was already
+hidden before continuing with the CloseEditor method.  Also added code
+to OpenEditor to send the BEGIN_LABEL_EDIT event and to not allow the
+opening of the editor to continue if the event handler doesn't allow
+it.
+
+Undeprecated wx.GetNumberFromUser and added wx.NumberEntryDialog.
+
+Made necessaary changes for building wxPython for Python 2.5.  There
+may still be some issues related to the new Py_ssize_t type and 64-bit
+machines, but at least all compile errors and warnings related to it
+have been resolved.
+
+
+
+
+2.6.3.2
+-------
+* 3-April-2006
+
+Fixed reference leak in wx.gizmos.TreeListCtrl.GetSelections.
+
+wxMSW: Fixed sizing issue with wx.Choice and wx.ComboBox.  This change
+was implemented by reverting a prior fix for a different problem
+(contiuous painting/resizing when a combobox is used as a widget in a
+wx.html.HtmlWindow) so a method to fix both problems is still being
+investigated.
+
+wxGTK: Fixed potential buffer overrun when pasting from the
+clipboard. 
+
+Fixed problem in wx.lib.splitter when used on 64-bit platforms.  Used
+the current length of the list for specifying an append instead of
+sys.maxint.
+
+wxMSW: Support added for XP themed owner drawn buttons and bitmap
+buttons.  For example, if you change the foreground color of a button
+it will now be drawn with the XP themed style rather than an ugly
+generic button style.
+
+XRCed: Fix for Copy/Paste objects with international characters.
+
+Fixed the equality and inequality operators for some of the basic
+data types (wx.Point, wx.Size, wx.Colour, etc.) to no longer raise a
+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
+
+wxMSW: Fixed (again) sizing/positioning issues of calling Realize on
+a wx.ToolBar that is not manaaged directly by a frame and that is
+already shown.
+
+wxMSW: Fixed wx.Choice/wx.ComboBox so they send events when a new item
+is selected only with the keyboard.
 
 
 
 2.6.3.0
 -------
+* 27-March-2006
 
 Change the wx.ListCtrl InsertStringItem wrapper to use the form that
 takes an imageIndex, and set the default to -1.  This ensures that on
@@ -44,6 +365,76 @@ derived class.  It is passed the item number and the column number as
 parameters, and the default version simply calls OnGetItemImage for
 column zero, or returns -1 for other columns.
 
+Switched to using SWIG 1.3.27 for generating the wrapper code.  There
+are some small changes needed to SWIG to work around some bugs that
+wxPython exposes, and to be able to generate code that matches that
+which wxPython is using.  If you are building wxPython yourself and
+need to modify any of the \*.i files or to add your own, then you will
+want to be sure to use a matching SWIG.  See wxPython/SWIG/README.txt
+in the source tarball for details.
+
+wx.Image.Copy, Mirror, and GetSubImage now also do the right thing
+with  the alpha channel.
+
+wxMSW: Fixed problem in wx.TextCtrl where using SetValue and
+wx.TE_RICH2 would cause the control to be shown if it was hidden. 
+
+wxMSW: Numpad special keys are now distinguished from normal keys in
+key events.
+
+wxMSW: Multiline notebook tab label change now resizes the control
+correctly if an extra row is removed or added.
+
+wxMSW: On XP fall back to unthemed wxNotebook if specified orientation
+not available in the themed version.
+
+Added wx.Toolbar.GetToolsCount.
+
+Added wx.GridSizer.CalcRowsCols.
+
+Added wx.OutputStream.LastWrite.
+
+wxGTK: EVT_SET_CURSOR is now sent.
+
+wxGTK: Fix RequestMore for idle events.
+
+wxGTK: Implement user dashes for PS and GNOME printing.
+
+wxGTK: Correct update region code. Don't always invalidate the whole
+window upon resize. Reenable support for thewx.NO_FULL_REPAINT_ON_RESIZE 
+flag.  Also disable refreshing custom controls when focusing in and out.
+
+wx.lib.pubsub: Publisher is now able to parse a dotted notation string
+into a topic tuple.  For example: subscribing to "timer.clock.seconds"
+is the same as subscribing to ("timer", "clock", "seconds").
+
+Applied patch #1441370: lib.plot - allow passing in wx.Colour()
+
+Added wx.CommandEvent.GetClientData.
+
+Updated wxStyledTextCtrl to use version 1.67 of Scintilla.  
+NOTE: The STC_LEX_ASP and STC_LEX_PHP lexers have been deprecated,
+you should use STC_LEX_HTML instead.
+
+wxSTC: Implemented Fix for SF Bug #1436503.  Delay the start of the
+DnD operation in case the user just intended to click, not drag.
+
+Updated the analogclock.py module to the new analogclock package from
+E. A. Tacao.
+
+Added the wx.lib.mixins.listctrl.CheckListCtrlMixin class from Bruce
+Who, which makes it easy to put checkboxes on list control items.
+
+Applied a patch from Christian Kristukat to wx.lib.plot that adds
+scrollbars when the plot is zoomed in, and also the ability to grab a
+zoomed plot and move it around with a mouse drag.
+
+XRCed updated to allow wxMenuBar to be created inside a wxFrame.
+
+Added wx.StandardPaths.GetDocumentsDir() (patch 1214360)
+
+
+
 
 
 
@@ -73,7 +464,7 @@ wx.SplitterWindow class, except it allows more than one split, so it
 can manage more than two child windows.
 
 Docview and IDE patch from Morgan Hua with fix for bug #1217890
-"Closing view crashes Python" plus some new features::
+"Closing view crashes Python" plus some new features:
 
     New feature added to the IDE is 'Extensions'.  Under
     Tools|Options|Extensions, you can add calls to external programs.