X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/30fc5e8fee1557e4049d35d416d76a2bebdd8780..c1dda21b64f300d89cbc084802082d37c694e971:/wxPython/docs/CHANGES.txt diff --git a/wxPython/docs/CHANGES.txt b/wxPython/docs/CHANGES.txt index d4c8498470..fe9cdd31c9 100644 --- a/wxPython/docs/CHANGES.txt +++ b/wxPython/docs/CHANGES.txt @@ -1,8 +1,290 @@ Recent Changes for wxPython ===================================================================== -2.7.0.0 +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 + + + + +2.8.1.2 +------- +* + +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). + + + + + +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-2006 + +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 + +Add events API to wxHtmlWindow (patch #1504493 by Francesco Montorsi) + +Added wxTB_RIGHT style for right-aligned toolbars (Igor Korot) + +Added New Zealand NZST and NZDT timezone support to wx.DateTime. + +wx.Window.GetAdjustedBestSize is deprecated. In every conceivable +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.) + + + + + + +2.7.1.3 +------- +* 26-Oct-2006 + +wxGTK: The wx.ALWAYS_SHOW_SB style is now supported. + +Fixed name errors in the old wxPython package namespace. As a +reminder, use of this package is deprecated and you are encouraged to +switch your programs over to the wx package. + +Fixed wx.glcanvas.GLCanvas.SetCurrent to be compatible with prevoius +versons. + +Added wx.StandardPaths.GetTmpDir. + +Bug fixes in the wx.ListCtrl on Mac from Kevin Olivier, allowing it to +send events properly again. There is also a new native implementation +of wx.ListCtrl available, which will be used for wx.LC_REPORT style +list controls if you set the "mac.listctrl.always_use_generic" +SystemOption to zero. In a future release this will be the default. + +Added a sample to the demo that shows some of what can be done with +the new wx.GraphicsContext and wx.GraphicsPath classes. + + + + +2.7.1.2 +------- +* 21-Oct-2006 + +Fixed a bug in the MaskedEdit controls caused by conflicting IsEmpty +methods. + +Patch #1579280: Some mimetype optimizations on unix-like systems. + +wxMac: Several wx.webkit.WebKitCtrl enhancements/fixes, including: + + - new methods for increasing/decreasing text size, getting + selection, getting/setting scroll position, printing, enabling + editing, and running JavaScripts on the page. + + - added new event (wx.webkit.WebKitBeforeLoadEvent) for catching, and + possibly vetoing, load events before they occur. + + - wx.webkit.WebKitCtrl now fires mouse events for certain events + that it was eating before. This improves wxSplitterWindow + resizing behavior. + + - refactoring of the sizing logic to move the Cocoa view. Tested + with splitter windows, panels, notebooks and all position + correctly with this. + +Some improvements to the drawing code in CustomTreeCtrl. + +Fixed refcount leak in wx.Window.GetChildren. + + + + + +2.7.1.1 +------- +* 18-Oct-2006 The following deprecated items have been removed: @@ -43,7 +325,7 @@ 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 +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 @@ -51,23 +333,22 @@ 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) + # 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 +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: @@ -120,13 +401,13 @@ 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 after the wx.App has been -created, but before OnInit is called, so if you use any of these -objects before the wx.App is created you will need to adjust your -code. 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. +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 object 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. @@ -146,6 +427,224 @@ 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 expands 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. + +Renamed wx.FutureCall to wx.CallLater so it is named more like +wx.CallAfter. wx.FutureCall is now an empty subclass of wx.CallLater +for compatibility of older code. + +Added the wx.lib.customtreectrl module from Andrea Gavana. + +Added ChangeSelection to wx.BookCtrl (the base class for wx.Notebook +and other book controls) that is the same as SetSelection but doesn't +send the change events. + +Added wx.TextCtrl.ChangeValue() which is the same as SetValue() but +doesn't send the text changed event. + +For consistency, all classes having an Ok() method now also have +IsOk(), use of the latter form is preferred although the former hasn't +been deprecated yet + +Added the wx.AboutBox() function and wx.AboutDialogInfo class. They +provide a way to show a standard About box for the application, which +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 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 +the animated GIF (and hopefully there will be other supported formats +in the near future) in the Animation object, and then give that to the +AnimatedCtrl for display. See the demo for an example. There is also +still a GIFAnimationCtrl class that provides some level of backwards +compatibility with the old implementation. + +wxMac: The compile option that turns on the use of CoreGraphics (a.k.a +Quartz) for wxDC is now turned on by default. This means that all +drawing via wxDC is done using the new APIs from apple, instead of the +old Quick Draw API. There are, however, a few places where Quartz and +wxDC don't fit together very well, mainly the lack of support for +logical drawing operations such as XOR, but there is work in progress +to provide other ways to do the same sort of thing that will work with +Quartz and also on the other platforms. + +The first parts of a new 2D drawing API has been added with the +wx.GraphicsPath and wx.GraphicsContext classes. They wrap GDI+ on +Windows, Cairo on wxGTK and CoreGraphics on OS X. They allow path-based +drawing with alpha-blending and anti-aliasing, and use a floating +point cooridnate system. Currently they can only target drawing to +windows, but other wx.DC backends are forthcoming. The APIs may +evolve a bit more before they are finalaized with the 2.8 release, but +there is enough there now to get a good feel for how things will work. +There is also a transitional wx.GCDC class that provides the wx.DC API +on top of wx.GraphicsContext. Docs and a demo are still MIA. + +Added a wx.AutoBufferedPaintDC that is a subclass of wx.PaintDC on +platforms that do double buffering by default, and a subclass of +wx.BufferedPaintDC on the platforms that don't. You can use this +class to help avoid the overhead of buffering when it is not +needed. There is also a wx.AutoBufferedPaintDCFactory function that +does a little more and actually tests if the window has +double-buffering enabled and then decides whether to return a +wx.PaintDC or wx.BufferedPaintDC. This uses the new +wx.Window.IsDoubleBuffered method. + + + + + + + +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. @@ -181,7 +680,7 @@ 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 + 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 @@ -610,9 +1109,9 @@ as it considered close enough since the version numbers match. If you 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 @@ -1483,11 +1982,11 @@ 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) + >>> 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