]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/docs/CHANGES.txt
Added wxStdDialogButtonSizer, which is a a special sizer that knows
[wxWidgets.git] / wxPython / docs / CHANGES.txt
index 564f883c828967385c475e99f0c1609b3b5e2993..00472b4f425c140996445338bb859be30de96fdd 100644 (file)
 Recent Changes for wxPython
 =====================================================================
 
-2.5.1.6
+
+2.5.3.3
+-------
+
+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().
+
+XRC: 
+    - 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.
+
+    * 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 `Finalize` and the sizer will take care of the rest.
+
+
+
+
+
+2.5.3.1
+-------
+
+wxMac focus and border refreshes corrected.
+
+Updated internal PNG library.
+
+wxMac fix for metal appearance on wx.ToolBar.
+
+wx.grid.Grid fix allowing DoGetBestSize to be called before CreateGrid
+(which means that a min size doesn't need to be specified.)
+
+wxMac fix for not sending a native click to a control if it is not
+enabled (does an enable itself)
+
+Added wx.lib.ogl.DrawnShape, and fixed various little bugs in the new
+OGL. 
+
+Added support to XRC and XRCed for the 3-state checkbox flags and also
+for wx.ToggleButton.  Updated the generic window styles supported by
+XRCed. 
+
+It is now possible to create "stock" buttons.  Basically this means
+that you only have to provide one of the stock IDs (and either an
+empty label or a label that matches the stock label) when creating the
+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::
+
+       b = wx.Button(parent, wx.ID_CANCEL) 
+
+
+Added wx.lib.ticker.Ticker class from Chris Mellon.
+
+Fix some incorrect clipping regions in wxSTC on wxGTK.
+
+Added wrapper for wx.grid.Grid.GetOrCreateCellAttr.
+
+Removed my copy of distutils from the wxPython source tree.  Now that
+I am no longer doing builds on Python 2.1 the newest distutils is no
+longer needed.  (There is still one small bug in Python 2.2 distutils
+on win32, but it is easily worked around.) This sovles the problem of
+incorrect builds on some systems where the system installed distutils
+has been patched to behave slightly differently, for example SuSE on
+x86_64 or Chandler's build.
+
+Updated to SWIG 1.3.22 (plus my patch.)  See wxPython/SWIG/README.txt
+in the source tree if you need to use SWIG when building your own copy
+of wxPython, or other extension modules that need to integrate with
+the wxPython modules.
+
+Added wx.Frame.RequestUserAttention which, if the platform suports it,
+will do something (such as flash the task bar item) to suggest to the
+user that they should look at that window.
+
+"Fixed" wx.grid.Grid.SetDefaultEditor and SetDefaultRenderer by making
+them register the editor or renderer for the "string" data type.
+
+Added depth param to wx.Image.ConvertToBitmap.
+
+Extended the wx.calendar.CalendarCtrl class with methods that get/set
+a Python datetime or date object.  (These will only work with Python
+2.3+) The methods are PySetDate, PyGetDate, PySetLowerDateLimit,
+PySetUpperDateLimit, PySetDateRange, PyGetLowerDateLimit, and
+PyGetUpperDateLimit.  Also, CalendarEvent was extended with PySetDate
+and PyGetDate methods.
+
+wxMSW: SetBackgroundColour on a wx.Choice or a wx.ComboBox will now
+also set the colour of the dropdown.
+
+wxMac: MessageDialog now supports wx.NO_DEFAULT style
+
+wxMSW: added AssociateHandle and DissociateHandle to wx.Window
+
+wxMac: fix for toolbar tooltips
+
+wx.Sizer.Show (and Hide) now take an optional parameter specifying if
+the item to be shown should be searched for recursivly in subsizers,
+and return a boolean value indicating if the item was found.
+
+wxMSW: fixed MaximizeEvent generation in wx.Frame
+
+wxMSW: fixed sending duplicate EVT_COMBOBOX events
+
+Smoother time estimation updates in wx.ProgressDialog (patch 992813)
+
+Made wx.Listbook events more consistent with wx.Notebook ones (patch
+1001271)
+
+Fixed rounding errors in variable status bar panes widths computation
+(patch 1030021)
+
+Added possibility to specify printer bin (patch 910272)
+
+wxMSW: fixed wx.ListCtrl's SetWindowStyleFlag() to not remove
+WS_VISIBLE; also refresh the control automatically (closes bug
+1019440)
+
+Added wx.Choicebook, yet another notebook-like control.
+
+wxMSW: Make radiobutton tab behaviour the same on MSW as in standard
+MSW app, i.e. tab into the activated, not necessarily the first radio
+button.
+
+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.
+
+
+
+
+
+2.5.2.8
+-------
+
+Predominantly a bug-fix release.
+
+  * Fixed fatal error due to improper wrapping of wx.FSFile.
+
+  * Fixed return type of EditableListBox.GetListCtrl
+
+  * Give generic tree and list controls a DoGetBestSize so they play
+    nicer with sizers when there is no minimal size.
+
+  * Some tweaks in the demo and samples to correct layout, some
+    flicker problems, and namespace use.
+
+  * Add wx.Image.ConvertAlphaToMask
+
+  * Minor corrections in wx.lib.dialogs
+
+  * wx.FileHistory constructor now accepts the documented 2nd
+    parameter.
+
+  * Corrections for exceptions in the new ogl
+
+  * Fixed XRCed to not use reparenting of windows to implement caching
+    of property panels, since Reparent on wxMac is not implemented.
+
+  * Add support for wxTAB_TRAVERSAL to the XRC handler for
+    wxScrolledWindow. 
+
+  * Add support for all wxListBox styles to the XRC handler for
+    wxCheckListBox. 
+
+  * Fix for wx.Listbook.DeleteAllPages to really delete everything.
+
+  * wxGTK2 now supports alpha blended bitmap drawing
+
+  * Made wx.grid.Grid play nicer with sizers.
+
+  * etc.
+
+
+
+
+2.5.2.7
 -------
 
 wx.ADJUST_MINSIZE is now the default behaviour for window items in
 sizers.  This means that the item's GetMinSize and/or GetBestSize will
 be called when calculating layout and the return value from that will
-be used for the minimum size.  The wx.FIXED_MINSIZE flag was added
-that will cause the sizer to *not* call window methods to determine
-the new best size, instead the minsize that the window had when added
-to the sizer (or the size the window was created with) will always be
-used.  When a window is added to a sizer it's initial size, if any, is
-set as the window's minimal size using SetSizeHints if there isn't
-already a minimal size.  You can set the window's minimal size (via
-SetSizeHints) to manually control wha tthe sizer will use when
-calculating layout.
+be used for the minimum size used by the sizer.  The wx.FIXED_MINSIZE
+flag was added that will cause the sizer to use the old behaviour in
+that it will *not* call the window's methods to determine the new best
+size, instead the minsize that the window had when added to the sizer
+(or the size the window was created with) will always be used.  Please
+see the Sizers section in the Migration Guide for more details.
 
 Added new MaskedEditControl code from Will Sadkin.  The modules are
 now locaed in their own sub-package, wx.lib.masked.  Demos updated.
@@ -29,6 +420,99 @@ parameters.
 Added wx.lib.mixins.listctrl.TextEditMixin, a mixin class that allows
 all columns of a wx.ListCtrl in report mode to be edited.
 
+Deprecated the wx.iewin module.
+
+Deprecated the wx.Sizer.AddWindow, AddSizer, AddSpacer methods as well
+as their Insert* and Prepend* counterparts.
+
+Added a generic StaticBitmap class in wx.lib.statbmp for the same
+reasons that stattext was created, so it could be mouse sensitive on
+all platforms like normal windows.  Also updated stattext.py and
+buttons.py to handle attribute (font & colour) defaults and
+inheritance the new way.  If you have custom controls of your own you
+should review stattxt.py or one of the others to see how it is to be
+done.
+
+wx.InitAllImageHandlers is now an empty function that does nothing but
+exist for backwards compatibility.  The C++ version is now called
+automatically when wxPython is initialized.  Since all the handlers
+are included in the wxWidgets shared library anyway, this imposes only
+a very small amount of overhead and removes several unneccessary
+problems.
+
+Replaced wx/lib/pubsub.py with a version that uses weak references to
+track the subscribers, plus other fixes/additions.  Thanks go to
+Oliver Schoenborn and Robb Shecter.
+
+wxGTK now uses gtk_init_check so wxPython can raise an exception if
+there is no DISPLAY available or other initializaion problem.
+
+wx.GetKeyState now has an implementation for wxGTK and is able to
+detect the up/down or toggle state of modifier and toggle keys.
+
+The LC_NUMERIC locale is now reset back to "C" (compatibility) when
+running on wxGTK to work around the fact that GTK requires the locale
+to be set to the system settings but Python depends on LC_NUMERIC
+remaining compatible with "C".
+
+Switched gizmos.TreeListCtrl to the newer version of the code from the
+wxCode project.
+
+OGL is dead! LONG LIVE OGL!  (Oops, sorry.  A bit of my dramatic side
+leaked out there...)  The wx.ogl module has been deprecated in favor
+of the new Python port of the OGL library located at wx.lib.ogl
+contributed by Pierre Hjälm.  This will hopefully greatly extend the
+life of OGL within wxPython by making it more easily maintainable and
+less prone to getting rusty as there seems to be less and less
+interest in maintaining the C++ version.  At this point there are just
+a couple minor known compatibility differences, please see the
+MigrationGuide_ file for details.
+
+.. _MigrationGuide: MigrationGuide.html
+
+EVT_STC_POSCHANGED has been removed as it has been deprecated in
+Scintilla for several releases now.
+
+All the Window and GDI (pen, bitmap, etc.) class constructors and also
+many toplevel functions and static methods will now check that a
+wx.App object has already been created and will raise a
+wx.PyNoAppError exception if not.
+
+Added more default args as needed to allow most window types to be
+constructed with only the parent window arg.  In some cases other args
+may be required for normal operation, but they can usually be set
+after construction.
+
+Removed the deprecated ErrorDialogs and PythonBitmaps modules.  If you
+were using these in your apps then please join wxPython-dev and assist
+with a more modern reimplementation.
+
+Added a new version (0.8.3) of FloatCanvas from Chris Barker.  It's now
+in a subpackage of wx.lib.
+
+It is now possible to change the tab traversal order of controls on a
+panel or dialog.  For details see the new MoveAfterInTabOrder and
+MoveBeforeInTabOrder methods of wx.Window.
+
+Applied (and heavily modified) a patch from Eugene
+<svip123@fastmail.fm> that allows the sample modules in the demo to be
+edited and reloaded, all from within the demo.  You can switch back
+and forth between the default and your edited version, and any errors
+ocurring upon the reload are reported on the Demo tab.
+
+Added a menu item in the demo that will open a PyShell window that has
+the app and demo frame preloaded in the namespace.  This is another
+good way to explore and play with the objects in the currently running
+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)
+
+
 
 
 2.5.1.5
@@ -1256,7 +1740,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.)
@@ -1338,7 +1822,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
@@ -1498,7 +1982,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