]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/docs/CHANGES.txt
Use Python's buffer interface API for all image data and alpha Set/Get
[wxWidgets.git] / wxPython / docs / CHANGES.txt
index 7a469f79715abc8979e9986f1c37094c6bebe045..17accd982f7143ea56ac591e2e6220b0a4467347 100644 (file)
@@ -1,7 +1,349 @@
 Recent Changes for wxPython
 =====================================================================
 
-2.5.2.9
+2.5.5.0
+-------
+
+wxMSW: Fixed bug #1022383, 'several ComboBoxes appear selected'
+
+wx.grid.Grid: Fixed bug #1163384.  Moved the code that handles
+activating the cell editors to a EVT_CHAR event handler.  This is done
+so the character inserted into the editor will be the "cooked" char
+value (including accented or composed keys) rather than the raw code
+provided by the EVT_KEY_DOWN event.  
+
+Added orient parameter to wx.MDIParentFrame.Tile()
+
+wxMSW: wxTextCtrl with wx.TE_RICH2 style now uses RichEdit 4.1 if
+available. 
+
+Added GetCount, GetCountRGB, and GetCountColour methods to
+wx.ImageHistogram. 
+
+wxMSW: wx.Window.Refresh changed to explicitly refresh all children as
+well as the parent.  Previously it was implicitly done because parents
+did not clip their children by default.  Now that they always clip
+children then Refresh needed to be fixed to do a recursive refresh.
+This also fixes the Freeze/Thaw problems that some people had with
+2.5.4.1.
+
+wx.SplitterWindow: Send EVT_SPLITTER_SASH_POS_CHANGED only once after
+end of dragging and not after each CHANGING event (modified patch
+#1076226)
+
+wx.glcanvas.GLCanvas: applied patch fixing problems with X server
+crash when using nVidia cards (patch 1155132)
+
+wx.lib.mixins.listctrl: Patches from Toni Brkic:
+   * Bugfix for TextEditMixin when the view can't be scrolled
+   * Enhancement for ListCtrlAutoWidthMixin, allowing it to manage 
+     the width of any column.
+
+wxMac: removal and reusing toolbar tools like the other platforms is
+now possible.
+
+wxMac: Correct radio tool selection after calling Realize a 2nd time.
+
+wxMSW: Applied patch #1166587, removes all flicker from wx.StaticBox
+
+Added wx.lib.foldpanelbar, Andrea Gavana's port of Jorgen Bodde's C++
+wxFoldPanelBar classes to Python.
+
+wxGTK: Applied patch #1173802, reimplementation of GtkFileChooser
+wxFileDialog by Mart Raudsepp.  Note that this new file dialog is only
+used on GTK2 >= 2.4.  For earlier GTK2 versions and GTK1 then the
+older generic file dialog is used.
+
+wxMSW: fixes to static box borders calculations (finalizes patch
+#1166587)
+
+wx.Image: Use Python's buffer interface API for all image data and
+alpha Set/Get methods and the ImageFromData* constructors.  They all
+still copy the buffer except for SetDataBuffer and SetAlphaBuffer, but
+this gives more flexibility on where the data can come from.
+
+
+
+
+
+2.5.4.1
+-------
+
+wx.Sizer Add, Insert, and Prepend functions now return a reference to the
+wx.SizerItem that was added to the sizer, and the wx.SizerItem has a
+GetRect accessor to give the position of the item on the parent window.
+
+Added wx.Sizer.GetItem method which returns the wx.SizerItem for the given
+wx.Window, wx.Sizer or position index.
+
+wxMSW: wx.RadioButtons in the same group no longer have to be
+consecutive (there may be intervening controls). Without this fix, an
+out-of-sync assert is generated when clicking on a radio button and
+then calling GetValue().
+
+Some XRC changes: 
+    - Added 'icon' property to wxFrame and wxDialog
+    - No longer ignores menu bitmaps on non-MSW platforms
+    - Notebook page bitmaps are now supported
+    - added system colours and fonts support (based on patch #1038207)
+
+wxMSW: fix for [ 1052989 ] TextCtrl.SetBackgroundColour(wx.NullColour)
+bug.
+
+Added wx.PasswordEntryDialog analagous to wx.TextEntryDialog, allows
+detecting entering an empty string vs. cancel unlike the
+wx.GetPasswordFromUser dialog function.
+
+OGL patch from Shane Holloway:
+
+    Two simple problems found in the new python ogl code.  First is
+    the patch for _canvas.py.  Essentially::
+
+        dx = abs(dc.LogicalToDeviceX(x - self._firstDragX))
+        dy = abs(dc.LogicalToDeviceY(y - self._firstDragY))
+
+    was incorrect because (x,y) and (self._firstDragX,
+    self._firstDragY) are both already in Logical coordinates.
+    Therefore the difference between the two is also in logical
+    coordinates, and the conversion call is an error.  This bug
+    surfaces when you have OGL on a scrollwin, and you are far from
+    the origin of the canvas.
+
+    The second change in _composit.py basically removes the assumption
+    that the child is in both self._children and self._divisions.
+    Causes many problems when it's not.  ;)
+
+Fixed GetSaveData and SetSaveData in wx.lib.multisash to not depend on
+the default way that class objectss are converted to strings.
+
+Fixed problem in StyledTextCtrl.Set[HV]ScrollBar that could leave the
+internal scrollbar visible.
+
+Added wx.StandardPaths which provides methods for determining standard
+system paths for each platform.
+
+wxMSW: The window background is now only erased by default if the
+background colour or background mode has been changed.  This better
+allows the default system themed behaviour to show through for
+uncustomized windows.  Explicit support added for using the correct
+theme texture for wx.Notebook pages and their children.
+
+wx.Image: Added support for alpha channels in interpolated and
+non-interpolated image rotation.  Added ConvertAlphaToMask helper
+method for turning shades of grey into shades of alpha and a colour.
+
+wxGTK2: Reimplemented DoDrawRotatedText() by way of a rotation of an
+alpha blended text bitmap.  It would be better if Pango could draw
+directly into an wxImage (as FreeType can,) but that is for later...
+
+Added wrappers and a demo for the wx.MediaCtrl class, which can play
+various forms of audio/video media using native codecs install on the
+system.  So far it is only implemented for Windows and OSX.
+
+wxGTK: Patch applied for Freeze()/Thaw() for wxTextCtrtl.
+
+Added "gravity" for splitter window (patch 1046105). Gravity is a
+floating-point factor between 0.0 and 1.0 which controls position of
+sash while resizing the wx.SplitterWindow.  The gravity specifies
+how much the left/top window will grow while resizing.
+
+wxMSW: wx.Slider's C++ implementation rewritten to be more
+maintainable and hopefully less buggy.  The position of the labels has
+also been changed in order to better comply with Microsoft's examples
+of how to use the control.
+
+wxMSW:  Fix wx.TreeCtrl to end label editing if the control loses
+focus (a slightly modified patch 1084592.)
+
+Added wx.EXEC_NODISABLE flag for wx.Execute, which will prevent all
+the app's windows being disabled while a synchronous child process is
+running. 
+
+wxMSW: Much work to correct painting (or leaving transparent) of
+control backgrounds, properly using background themes on XP, etc.
+
+Fixed a circular reference problem with wx.Timer.  It will now
+completely cleanup after itself when the last reference to the timer
+is removed.  If you were previously using timer.Destroy() to cleanup
+your timers it will no longer work.  Instead you should hold a
+reference to the timer and then del the reference when you are
+finished with the timer.
+
+Updated to 1.3.24 of SWIG.  All of my big patches have been applied to
+the main SWIG source tree, but unfortunatly there were also some bugs
+added that affected the wxPython build and a few details in my
+original patch were changed/removed, so we are still not free of
+patches.  A new patch for SWIG is located in the wxPython/SWIG
+directory of the wxPython source tree.  SWIG 1.3.24 plus this patch
+should be used by anyone who is making custom modifications to
+wxPython's .i files, or building their own extension modules or
+etc. that need to interact with the wxPython swigged types.  For the
+morbidly curious, here are a few more details:
+
+    * Since it is now possible easily and simply share the SWIG type
+      tables across modules I reverted to always using the stock SWIG
+      runtime instead of my slightly hacked up version of it exported
+      via the wxPython C API.
+
+    * The %name directive is now deprecated so I replaced most uses of
+      it with a custom %Rename macro that uses %rename internally.
+      These will evetually need to be replaced with a DocDecl macro
+      when docstrings are added for those items.
+
+    * The "this" attribute of all SWIGged classes is no longer a
+      string containing a "swigified pointer", but rather a custom
+      built-in type that holds the real C pointer to the object and
+      the type info.  It can be converted to a string like the old
+      value using str() or to the long integer value of the pointer
+      using long().
+
+Added SetDefaultPyEncoding and GetDefaultPyEncoding functions which
+will set/get the encoding used by wxPython to convert string or
+unicode objects to/from wxString objects.  Previously the default
+Python encoding was always used, but unless the user had tweaked their
+sitecustomize.py file it is always "ascii", which would result in
+errors if the strings contained character codes >= 128.
+SetDefaultPyEncoding will now allow you to control which encoding will
+be used to do those conversions.  The default encoding is set to the
+value of `locale.getdefaultlocale()[1]` when wxPython is first
+imported.  Please see http://www.alanwood.net/demos/charsetdiffs.html
+for information on the differences between the common latin/roman
+encodings.
+
+Added wxStdDialogButtonSizer, which is a a special sizer that knows
+how to order and position standard buttons in order to conform to the
+current platform's standards.  You simply need to add each `wx.Button`
+to the sizer, and be sure to create the buttons using the standard
+ID's.  Then call `Realize` and the sizer will take care of the rest.
+
+wxMSW Toolbar: pass correct tool id (and not always -1) to the
+EVT_TOOL_RCLICKED handler
+
+wxGTK: Applied patch for combo box SELECTED events (no longer get
+lots of surplus events)
+
+wxGTK: Applied patch for proper menu highlight colour detection in
+wx.SystemSettings.
+
+wxGTK: Commited scrollbar patch #1093339 which sends lineup, linedown
+events based on intercepting the mouse down events.
+
+wxGTK: Applied patch #1102789 which solved conflicts between wxWidgets
+and GTK+'s context menu code.
+
+wxGTK: Applied patch #1100327 for correct feedback from DND actions
+(not all actions are allowed).
+
+Fixed memory leak in wxGrid::UpdateAttr[Rows][Or][Cols] (patch 1104355)
+
+For efficiency reasons, text controls no longer set the string for
+each text updated event, but rather query for the string value only
+when GetString is called from an event handler.
+
+Added wx.SL_INVERSE style which will cause wx.Slider to invert the min
+and max ends of the slider.
+
+Several patches applied, such as #1111174, #1110252 and others, that
+make the generic wx.TreeCtrl (used on wxGTK and wxMac) be more
+conistent with the wxMSW native wx.TreeCtrl.
+
+XRCed:
+    * Edit->Locate command (Ctrl-L) for quick selection of items.
+      Works with event-handling controls (buttons, text fields) but
+      not with labels/sizers.
+    * Some improvements: relative paths for files supplied as command-
+      line argument work correctly, notebook panels are highlighted
+      better.
+
+wxMac: Fixed a long-standing issue where wxSlider controls with a
+hardcoded size would misplace their labels behind the slider control.
+
+wx.HtmlListBox fixed so calling RefreshLine(s) will cause the data for
+that line to be refetched from the overridden methods in the derived
+class.
+
+The default DoGetBestSize now includes the difference (if any) between
+the client size and total size of the window, (such as the size of
+borders.)  Code that sets the client size using the best size, or that
+added extra space to sizers to compensate for this bug may need to be
+changed.
+
+Can suppress themed notebook pages with the wxNB_NOPAGETHEME style or
+setting system option msw.notebook.themed-background to 0.
+
+wxSyledTextCtrl updated to use Scintilla 1.62.
+
+Can now set the msw.window.no-clip-children system option to 1 to
+eliminate weird refresh behaviour (delays between a window being
+erased and repainted, giving a ghostly gradual-redraw effect). May be
+a temporary 'fix' until properly fixed before 2.6.
+
+wxMac:  Toolbar is now more native looking with borderless toolbar
+buttons.  
+
+wxMac: Switched wx.Bitmap to use newer Quartz object types and APIs
+internally.  This results in faster display and better alpha support.
+
+Added wx.DatePickerCtrl.
+
+wx.html.HtmlWindow now supports background images.
+
+Added wx.lib.gestures module from Daniel Pozmanter which supports
+using Mouse Gestures in an application.
+
+wxGTK2: ENTER and LEAVE mouse events are now sent for multi-line text
+controls.
+
+wxMSW:  "Alt" key (VK_MENU) now results in WXK_ALT keyboard event, not
+WXK_MENU
+
+Added modules from Peter Yared and Morgan Hua that implement the wx
+Doc/View framework in pure Python code.  See wx.lib.docview for the
+base implementation and wx.lib.pydocview for Python-specific
+extensions.  There are also a couple sample applications located in
+samples/docview. 
+
+Added GetBitmap, GetIcon to wx.ImageList.
+
+wxGTK wx.Button.SetLabel no longer invalidates/resets the font.
+
+wx.Sizer.AddWindow, AddSizer, AddSpacer and etc. have now been
+undeprecated at the request of Riaan Booysen, the Boa Constructor team
+lead.  Boa needs them to help keep track of what kind of item is being
+managed by the sizer.  They are now just simple compatibility aliases
+for Add, and etc.
+
+The old C++ version of the OGL lib is no longer built by default.  Use
+the Python version in the wx.lib.ogl package instead.
+
+The wx.iewin module is no longer built by default.  You can use the
+wx.lib.iewin version instead.
+
+Fixed wx.BufferedPaintDC for scrolled windows to work whether the
+buffer is covering only the client area or the full virtual area of
+the scrolled window.  By default it will assume that only the client
+area is covered.  This is different than the old behavior so to
+indicate that the entire virtual area is covered simply add a
+style=wx.BUFFER_VIRTUAL_AREA parameter.
+
+wx.gizmos.TreeListCtrl:  Add support for the EVT_TREE_ITEM_GETTOOLTIP
+event. 
+
+Added Resize, SetRGBRect, Size, and GetOrFindMaskColour methods to
+wx.Image. 
+
+Added wx.Rect.IsEmpty
+
+wxGTK:
+    - Corrected wx.ListBox selection handling
+    - Corrected default button size handling for different themes
+    - Corrected splitter sash size and look for different themes
+    - Fixed keyboard input for dead-keys
+
+
+
+
+2.5.3.1
 -------
 
 wxMac focus and border refreshes corrected.
@@ -30,8 +372,8 @@ button and wxWidgets will choose the stock label to go with it
 automatically.  Additionally on the platforms that have a native
 concept of a stock button (currently only GTK2) then the native stock
 button will be used.  For example, the following will result in a
-button with "Cancel" as the label and an accelerator on the "C", and
-if run on wxGTK2 then there will also be an image of a red X::
+button with "Cancel" as the label and if run on wxGTK2 then there will
+also be an image of a red X::
 
        b = wx.Button(parent, wx.ID_CANCEL) 
 
@@ -112,6 +454,87 @@ Added limited support for wxEventLoop (you can't derive from a
 wx.PyEventLoop version yet...)  Updated and moved the sample showing
 how to replace the MainLoop to samples/mainloop/mainloop.py.
 
+The C++ xrc lib has been moved out of contrib and into the core, so it
+is always built by default.  wxPython's build has also changed
+accordingly and will build the xrc module as part of the core set of
+modules built by default.  If you were axplicitly using BUILD_XRC then
+it will no longer be recognized as a build option, otherwise you
+should notice no difference.
+
+wxMac: Fixed radio toolbar buttons to correctly untoggle the others
+when a new one is selected.
+
+wxMac: Fixed GetLineLength and GetLineText for MLTE text controls
+
+wxMac: wx.TaskBarIcon is implemented by allowing you to change the
+app's icon on the Dock and also specifying a menu that should be
+merged with the normal dock popup menu.  See the MigrationGuide for
+more details and a warning.
+
+Added wx.TopLevelWindow.IsActive() which tells you if the frame or
+dialog is or containts the active window with the keyboard focus.
+
+Added ability to create a font based on pixel size rather than point
+size via the FontFromPixelSize constructor.
+
+Updated the Scintilla used by StyledTextCtrl to version 1.61
+
+Improved image HitTest for TreeListCtrl.
+
+Added wx.App.IsMainLoopRunning.
+
+wxGTK: Make wxComboBox spit out a bit fewer surplus events when
+holding down the mouse button.
+
+wxGTK: Enable key based navigation through notebook tabs as in the
+native control with Left and right keys. Support for vetoing.
+
+FloatCanvas updates from Chris Barker
+
+PyPlot updates from Gordon Williams:
+   - Added bar graph demo
+   - Modified line end shape from round to square.
+   - Removed FloatDCWrapper for conversion to ints and ints in
+     arguments
+   - Imported modules given leading underscore to name.
+   - Added Cursor Line Tracking and User Point Labels. 
+   - Demo for Cursor Line Tracking and Point Labels.
+   - Size of plot preview frame adjusted to show page better.
+   - Added helper functions PositionUserToScreen and
+     PositionScreenToUser in PlotCanvas.
+   - Added functions GetClosestPoints (all curves) and GetClosestPoint
+     (only closest curve) can be in either user coords or screen
+     coords.
+
+MaskedEdit updates from Will Sadkin:
+    - Added '*' mask char that means "all ansii chars" (ords 32-255)
+    - Added proper unicode support to masked controls and wx.tools.dbg
+    - Fixed two reported missing import bugs introduced by package
+      creation
+    - Converted masked package doc strings to reST format for better
+      epydoc support
+    - lots of doc string improvements and function hiding to better
+      reflect package's public contents.
+
+Restructured the installer packages slightly to help facilitate having
+multiple versions of wxPython installed at the same time.  See the
+Migrarion Guide for more information.
+
+Applied patch from Pim Van Heuven that modifies 4 files:
+    - wxPython/demo/ListCtrl_edit.py (new demo)
+    - wxPython/demo/Main.py (include new demo in demo app)
+    - wxPython/wx/lib/mixins/listctrl.py (several improvements to 
+      TextEditMixin)
+    - wxPython/wx/lib/wxpTag.py (some small fixes)
+
+Added (thanks to Kevin Ollivier!) wrappers for wx.WebKitCtrl for the
+OSX build.  Other platforms will raise an exception if you try to use
+it. 
+
+wxPython on OSX can now be built in Unicode mode, can support multiple
+version installs, and comes with an uninstaller script.
+
+
 
 
 
@@ -277,6 +700,9 @@ in the PyShell::
        ...     wx.MilliSleep(10)
 
 
+wxGTK: Applied wxNO_BORDER patch (#1098374) for text control and combo
+box.
+
 
 
 2.5.1.5
@@ -1504,7 +1930,7 @@ Added new HTML printing classes.
 
 Added wxWindow.GetHandle
 
-Apparently wxMouseEvent.Position has been depreciated in wxWindows as
+Apparently wxMouseEvent.Position has been deprecated in wxWindows as
 it is no longer available by default.  You can use GetPositionTuple
 (returning a tuple with x,y) instead, or GetPosition (returning a
 wxPoint.)
@@ -1586,7 +2012,7 @@ wxGTK.  Added them back in since the methods exist now.
 Wrapped the wxHtmlHelpController and related classes.
 
 Wrapped the C++ versions of wxSizer and friends.  The Python-only
-versions are still in the library, but depreciated.  (You will get a
+versions are still in the library, but deprecated.  (You will get a
 warning message if you try to use them, but the warning can be
 disabled.) The usage of the C++ versions is slightly different, and
 the functionality of wxBorderSizer is now part of wxBoxSizer.  I have
@@ -1746,7 +2172,7 @@ Added wxGrid.GetCells
 Added wxSystemSettings static methods as functions with names like
 wxSystemSettings_GetSystemColour.
 
-Removed wxPyMenu since using menu callbacks have been depreciated in
+Removed wxPyMenu since using menu callbacks have been deprecated in
 wxWindows.  Use wxMenu and events instead.
 
 Added alternate wxBitmap constructor (for MSW only) as
@@ -1773,7 +2199,6 @@ in wx.cpp.
 
 
 
-
 What's new in 2.1b1
 --------------------
 Fixed wxComboBox.SetSelection so that it actually sets the selected