X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cb8f28ba1e40dc9f7b847ad2431c5e9be5125d3a..b843b628c9f936d6a87ca1e9b91e88a4604270c4:/wxPython/docs/CHANGES.txt diff --git a/wxPython/docs/CHANGES.txt b/wxPython/docs/CHANGES.txt index 30254e59c4..91c3aa2dd1 100644 --- a/wxPython/docs/CHANGES.txt +++ b/wxPython/docs/CHANGES.txt @@ -1,7 +1,428 @@ Recent Changes for wxPython ===================================================================== -2.5.2.0 + +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 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 `Finalize` 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. (Only for wxGTK so far.) + + + + + +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 @@ -11,24 +432,8 @@ 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. - -Related to the above, when controls and some other window types are -created either the size passed to the constructor, or their "best -size" if an explicit size was not passed in, is set as the window's -minimal size. For non top-level windows that hasn't meant much in the -past, but now the sizers are sensitive to the window's minimal size. -The key point to understand here is that it is no longer the window's -size it has when added to the sizer that matters, but its minimal -size. So you might have some issues to iron out if you create a -control without a size and then set its size to something before -adding it to the sizer. Since it's minimal size is probably not the -size you set then the sizer will appear to be misbehaving. The fix is -to either set the size when calling the window's constructor, or to -reset the min size by calling SetSizeHints. You can call SetSizeHints -at anytime to change the minsize of a window, just call the sizer's -Layout method to redistribute the controls as needed. - +(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. @@ -80,7 +485,63 @@ 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 + 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) + +wxGTK: Applied wxNO_BORDER patch (#1098374) for text control and combo +box. @@ -1309,7 +1770,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.) @@ -1391,7 +1852,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 @@ -1551,7 +2012,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