1.. title: wxPython Changelog 2.. slug: changes 3.. author: Robin 4.. description: Summary of changes for wxPython releases 5.. type: text 6 7 8wxPython Changelog 9================== 10 114.0.7 "one more, for the road" 12------------------------------ 13* 25-Oct-2019 14 15PyPI: https://pypi.org/project/wxPython/4.0.7 16Extras: https://extras.wxPython.org/wxPython4/extras/ 17Pip: ``pip install wxPython==4.0.7`` 18 19This release is comprised mostly of fixes and minor features which have been 20back-ported from the master branch. This release is likely the last release of 21the 4.0.x release series, and is certainly the last 4.0.x release that will 22support Python 2.7. It may still continue to build for Python 2.7 for some time, 23but no extra effort will be expended to keep it compatible. 24 25This release provides the following changes: 26 27* Bug fixes in wx.lib.calendar: key navigation across month boundaries is now 28 possible; key navigation now sets the date and fires the EVT_CALENDAR event; 29 setter APIs now set the date correctly (#1230). 30 31* Switch to using a wx.Overlay in the Widget Inspection Tool to highlight 32 widgets when running on a GTK3 port. 33 34* Fixed issue in wx.lib.agw.customtreectrl where label editor could remain 35 stuck forever (#1235). 36 37* Fix a sometimes crash when using a wx.Overlay by letting the wx.DCOverlay hold 38 a reference to the DC, to ensure that the DCOverlay is destroyed first. 39 (PR#1301) 40 41* Ported the embedding sample from Classic, which shows how to use wxPython from 42 a C++ wxWidgets application that embeds Python. (PR #1353) 43 44* Fixed wx.GetApp() to use wxWidgets' global wxApp instance instead of 45 maintaining its own pointer. This way, if the wxApp is created by C++ code 46 wxPython will still be able to get access to it. (#1126) 47 48* Several other PRs have been backported from the master branch (which will 49 become wxPython 4.1.0), the full list can be seen here: 50 https://github.com/wxWidgets/Phoenix/pull/1357 51 52 53 544.0.6 "Applesauce" 55------------------ 56* 21-May-2019 57 58PyPI: https://pypi.org/project/wxPython/4.0.6 59Extras: https://extras.wxPython.org/wxPython4/extras/ 60Pip: ``pip install wxPython==4.0.6`` 61 62This release provides the following fixes: 63 64* Fixed a probably rare, but fatal bug on OSX when calling certain overloaded 65 virtual methods with implementations in Python. 66 67* Fixed char pointers in generated stub code to have a valid pointer value. 68 69* Reverted the change that loads up install_requires from the contents of 70 requirements.txt. Split the requirements.txt file into one for install and one 71 for development. 72 73 74 75 764.0.5 "St. Helens Day" 77---------------------- 78* 18-May-2019 79 80PyPI: https://pypi.org/project/wxPython/4.0.5 81Extras: https://extras.wxPython.org/wxPython4/extras/ 82Pip: ``pip install wxPython==4.0.5`` 83 84Changes in this release include the following: 85 86* Added missing HtmlWindow.ScrollToAnchor method, and also a couple methods 87 in HtmlCell too. (#1141) 88 89* Added missing setters for the wheel-related properties in wx.MouseEvent. 90 (#1140) 91 92* Updated wxWidgets commit reference, bringing fixes for #1140, #1086 and 93 #1147. 94 95* Fix the use of the output parameter in HtmlWindow.OnOpeningURL the same way 96 it was fixed in HtmlWindowInterface.OnHTMLOpeningURL. (#1068) 97 98* Fixed a crashing bug when using a member of a transient wx.VisualAttributes 99 object. Also set the attributes to be read-only to simplify the fix. (#1198). 100 101* Updated the sip being used in wxPython builds to version 4.19.16. 102 103* Added helper functions to check results of wxWidgets configure during the 104 build of wxPython. Currently used to determine if the wx webview, glcanvas, 105 and media libraries should be added to the link command. (#1138) 106 107* Fixed scrollbar issue with ListCtrlAutoWidthMixin (#1215) 108 109* Fixed file access in the wx.py and wx.tools.pywxrc packages to be Python 2 and 110 3 compatible. (#1193, #1156) 111 112* Fixes for building with Python 3.8 on Linux. (#1227) 113 114 115 116 1174.0.4 "What? It's 2019 already?" 118-------------------------------- 119* 5-Jan-2019 120 121PyPI: https://pypi.org/project/wxPython/4.0.4 122Extras: https://extras.wxPython.org/wxPython4/extras/ 123Pip: ``pip install wxPython==4.0.4`` 124 125Changes in this release include the following: 126 127* Fixed an issue where wx.lib.intctrl would erroneously attempt to use long 128 on Python3. (#898) 129 130* Include the MSVC runtime DLLs for Python 3.7 builds too. 131 132* Clear LIBPATH_PYEXT and LIB_PYEXT for linux builds too. (#904) 133 134* Added a dependency on the Pillow package since it's used in some wx.lib.agw 135 modules. (PR #908) 136 137* Add flag to hide page in wx.lib.agw.aui.notebook. (#895) 138 139* Switch wx.lib.plot to issue deprecation warnings with PlotPendingDeprecation 140 so it doesn't have to enable all warnings to get them to be shown by default. 141 (#902) 142 143* Added a Python 3.7 builder on Fedora 28. (#925) 144 145* Fix the object ownership transfer for wx.Menu.Insert() (#931) 146 147* Added wx.Treebook.GetTreeCtrl, wx.Listbook.GetListView and 148 wx.Choicebook.GetChoiceCtrl. (#918) 149 150* Removed the wx.BookCtrlBase.RemovePage workaround as it was causing problems 151 and doesn't seem to be necessary any more. The existing wxWidgets assertions 152 are catching the out of range error just fine, however if wxWidgets was built 153 without the debug helpers turned on then it could still cause a crash. (#888) 154 155* Reverted the changes which removed the content of the wx.lib.pubsub package 156 and encouraged users to switch to the real PyPubSub package instead. Removing 157 it caused more issues than were expected so it has been restored and the code 158 updated to PyPubSub v3.3.0. Version 4.0.0 is available upstream, but it is not 159 compatible with Python 2.7. Now, wx.lib.pubsub is actually deprecated instead 160 of just trying to pass control over to the upstream PyPubSub library. (#932) 161 162* Improve calltip stability in pyshell. (#941) 163 164* Fix TypeError in wx.lib.throbber. (#924) 165 166* Fix missing parameter tool_id in 167 wx.lib.agw.ribbon.toolbar.RibbonToolBar.AddToggleTool. (#947) 168 169* Add a step to wx.Config.ReadInt to attempt converting from long to int 170 under python2. (#384) 171 172* Add virtual behavior for wx.RichTextCtrl and wx.TextCtrl's Copy/Cut/Paste methods 173 and their Can* counterparts. (#954) 174 175* Fix IO type in wx.lib.agw.thumbnailctrl (#959) 176 177* Fix type error that would occur using pycolourchooser. (#957) 178 179* Optimize line drawing in HyperTreeList. (#973) 180 181* Add wrapper for wx.StaticBox.GetBordersForSizer and use it in the demo to do 182 platform-specific layout of the items in the StaticBox. (#974) 183 184* Update wx.Point, wx.RealPoint, and wx.Size to use floating 185 point arithmetic when conducting scalar multiplication (#971) 186 187* Fix load/save bugs in PySlices (PR#978) 188 189* Replace deprecated PIL.Image.tostring (PR#1005) 190 191* Fix rendering and mouse sensitivity in UltimateListCtrl when adding HyperText 192 items. (#1010) 193 194* Added a parameter to lib.agw.CustomTreeCtrl.SetItemWindow(), to allow 195 positioning the Window (a small image) on the left of text in a 196 CustomTreeItem. (#PR886). 197 198* Declared DeleteAllPages in the notebook subclasses, so the proper C++ 199 implementation will be called. (#972) 200 201* Removed wx.lib.floatbar, which has been deprecated forever and probably 202 hasn't been working in nearly as long. (#976) 203 204* Updated SIP to version 4.19.13. 205 206* Fix an issue in wx.lib.agw.aui.AuiManager where the orientation of 207 an AuiToolBar would not be updated when calling LoadPerspective. (#917) 208 209* Fixed a bug in wx.FileSystemHandler.OpenFile where the object ownership was 210 not being transferred correctly, causing a crash after a premature object 211 deletion. (#926) 212 213* Fixed wx.ListCtrl.Append when wx.LC_SORT style is used, so appending items out 214 of order does not lose the data for the remaining columns. (#906) 215 216* Add wx.Accessible, it's Windows-only, will raise a NotImplementedError 217 exception on the other platforms. (#958) 218 219* Added the ability to generate stub classes for use when optional wxWidgets 220 features are not part of the build. So far, stubs are available for 221 wx.Accessible, wx.FileSystemWatcher, wx.glcanvas, wx.media and wx.html2. 222 223* Moved the wxpy_api.h file into the wx package at wx/include/wxPython so it 224 will be included in the wheel file. (#961) 225 226* Fixed how string data is added to a virtual file-like object in 227 wx.MemoryFSHandler. All strings are now added to the file as utf-8 encoded data, 228 in both Python2 and Python3, and will be read from the virtual file the same 229 way. If you need to use some other encoding for some reason you can first 230 convert the text to a bytesarray or other buffer protocol compatible object and 231 then create the virtual file from that data. (#969) 232 233* Performance update for wx.lib.agw.customtreectrl (#1049) 234 235* Ensure that colours set in wx.lib.agw.customtreectrl.TreeItemAttr are 236 instances of wx.Colour. (#1032) 237 238* Fix drawing of ticks in wx.lib.agw.speedmeter when there are negative bounds 239 values. (#1013) 240 241* wxWidgets for Mac includes the wxJoystick class now, also update the demo. 242 (#997) 243 244* Fix wx.html.HtmlPrintout to not be seen as an abstract class, so it can be 245 instantiated. (#1060) 246 247* Fix wx.aui.AuiNotbook.SetArtProvider to properly transfer ownership of the art 248 object from Python to C++. This possible double-deletion and related crashing 249 problems. (#1061) 250 251* Fixed the wrappers for wx.html.HtmlWindow.OnOpeningURL to properly handle the 252 redirect output parameter. (#1068) This is a backwards-incompatible change, 253 please see the Migration Guide for details. 254 255* TabNavigatorWindow works similarly to other programs now. It's resizable and 256 draggable so if user has tons of files with long names, it isn't an irritation 257 anymore plastered right in the middle of the screen and can't be worked with 258 easily and ESC now cancels the popup with a proper returnId. (#1096) 259 260* Added missing methods in wx.ListBox, SetItemForegroundColour, 261 SetItemBackgroundColour and SetItemFont. (#1095) 262 263* Backported a fix in wxWidgets that avoids crashing in hhctrl.ocx when using 264 context sensitive help in 64-bit builds on Windows. (#1104) 265 266 267 268 2694.0.3 "The show must go on. (Die show-stoppers! Die!)" 270------------------------------------------------------ 271* 25-June-2018 272 273PyPI: https://pypi.org/project/wxPython/4.0.3 274Extras: https://extras.wxPython.org/wxPython4/extras/ 275Pip: ``pip install wxPython==4.0.3`` 276 277Changes in this release include the following: 278 279* Fixed a linking problem on macOS. The new waf added an explicit link to the 280 Python shared library which meant that it would try to load it at runtime, 281 even if a different Python (such as Anaconda, EDM or Homebrew) was used to 282 import wxPython. This, of course, caused runtime errors. (#892) 283 284* Sort pages by dock_pos when added to automatic (agw.aui) notebook. (#882) 285 286* Fix a bug in py.introspect.getTokens. (#889) 287 288* Added Vagrant configuration for Fedora-28. Removed Fedora-23 (#884) 289 290* Added wrappers for the wx.WindowIDRef class and added the wx.NewIdRef 291 function. These will make it possible to create reserved Window IDs using the 292 same mechanism which is used when passing wx.ID_ANY to a widget constructor. 293 The object returned by wx.NewIdRef will automatically convert to an int when 294 passing it to a window constructor, and can also be used as the source in a 295 Bind(). (#896) 296 297* Fixed issue when sys.prefix is not unicode (Python2) and when its contents 298 are not translatable to utf-8. 299 300 301 302 3034.0.2 "Cute as a June bug!" 304--------------------------- 305* 16-June-2018 306 307PyPI: https://pypi.org/project/wxPython/4.0.2 308Extras: https://extras.wxPython.org/wxPython4/extras/ 309Pip: ``pip install wxPython==4.0.2`` 310 311Changes in this release include the following: 312 313* Fixed wx.html2.EVT_WEBVIEW_NAVIGATING event not being sent on some versions 314 of Linux. (#741) 315 316* wx.Sizers can now be used as an iterator to iterate over the items within 317 the sizer. (#738) 318 319* Fix Python3 division in ThumbnailCtrl. (#746) 320 321* Fix leaking image list in CheckListCtrlMixin (#752) 322 323* All items marked as deprecated in the wxWidgets interface (documentation) 324 files will now throw a DeprecationWarning when used from wxPython. Many of 325 these items are disappearing in 4.1 so it's important to ensure they are 326 deprecated at runtime too instead of just in the docs. (#749) 327 328* Ensure that the attribute list given to the GLCanvas constructor is 329 zero-terminated like it was in Classic. (#770) 330 331* Updated to the wxWidgets 3.0.4 release version. 332 333* Added the wxWidgets version number to the tail end of the string returned by 334 wx.version(). 335 336* Bind EVT_WINDOW_DESTROY event only to the tree windows in CustomTreeCtrl, 337 since otherwise it would be caught when child windows are destroyed too, 338 which causes problems in this case. (#778) 339 340* Fixed a problem where wx.TreeCtrl.OnCompareItems was not being called in 341 derived classes on Windows. This was due to an optimization that wasn't 342 compatible with how the classes are wrapped. (#774) 343 344* Added wrappers for wx.ClassInfo and exposed wx.Object.GetClassInfo. This 345 class is part of wxWidgets' internal type information system and although 346 it is not very useful for Python applications it is useful for debugging 347 some internal wxPython issues. 348 349* Removed the wx.lib.pubsub package, and replaced it with code that imports 350 the standalone PyPubSub in order remain compatible with older code that 351 still uses wx.lib.pubsub. (#782, #792) 352 353* Fixed bug in wx.lib.intctrl (#790) 354 355* Fixed subclassing of wx.TextCompleter and wx.TextCompleterSimple (#827) 356 357* Fixes for Python3 compatibility in PyCrust. (#823) 358 359* Fix wxGet to be able to use pip v10. (#817) 360 361* Change winid parameter in wx.ScrolledWindow to id, for consistency. (#816) 362 363* Ensure that the page exists in book controls GetPage and RemovePage methods. 364 At least one of the wx ports do not do this. (#830) 365 366* Added missing wx.NumberEntryDialog 367 368* Change wx.TextCompleterSimple.GetCompletions to send the list of strings 369 as a return value, rather than a parameter that gets filled. (#836) 370 371* Enabled the wx.GraphicsContext.Create(metaFileDC) wrapper (#811) 372 373* Metafile support is also available on OSX, so wx.msw.Metafile and 374 wx.msw.MetafileDC have been moved to the core wx module. So they can now be 375 accessed as wx.Metafile and wx.MetafileDC. 376 377* Updated the waf tool used by the build to version 2.0.7. This fixes problems 378 with building for Python 3.7. 379 380* Fixed alignment in buttons on MSW which have had foreground or background 381 colors set. (#815) 382 383* Fix for unexpected assertion inside wx.aui.AuiMDIChildFrame.Close. 384 385* Fix a bug in setting AuiDockingGuide size. (#727) 386 387* Remove unnecessary AUI notebook updating, and use wx.BufferedDC in Repaint() 388 to mitigate flicker. (wx.lib.agw.aui). (#851, #686) 389 390* Fixed crashing bug when using client data with items in 391 wx.dataview.DataViewTreeCtrl. (#856) 392 393* Detach wx.Control in AuiToolbar from current sizer before attach to a new 394 one. (#843) 395 396* Fixed a problem in wx.lib.mixins.listctrl.TextEditMixin where the height of 397 the editor widget could be set to zero. (See discussion in #849) 398 399* Fix a bug in calculating whether a tool fits into the AuiToolBar. (#863) 400 401* Override SetForegroundColour and SetBackgroundColour in MaskedEditMixin (#808) 402 403* Add an explicit wx.GraphicsContext.Create overload for wx.AutoBufferedPaintDC. (#783) 404 405* Return original AGW window style in AuiToolBar.GetAGWWindowStyleFlag. (#870) 406 407* Fix a bug in group management on wx.lib.masked.numctrl; the previous code used 408 truediv ('/') to calculate _groupSpace, but in python 3.x this leads to a float 409 result, instead of an integer as was expected. Using floordiv ('//') instead 410 to solve the problem. (#865) 411 412* Hide the window when the tool does not fit into AuiToolBar. (#872) 413 414* Fixed the virtual dispatch code for the PGEditor.GetValueFromControl method 415 to properly pass the parameters to the Python implementation, and also fixed 416 how the return value is handled. (#742) 417 418* Fixed all implementations of the PGProperty.StringToValue and IntToValue 419 methods to treat the value parameter as a return value. (#742) 420 421* Add missing wx.adv.EVT_CALENDAR_WEEK_CLICKED (#875) 422 423* Fixed the stock labels to conform to Windows design guidelines. (#787) 424 425* Always reset floating size and style when floating a toolbar in agw.aui. (#880) 426 427 428 4294.0.1 "Lemonade" 430---------------- 431* 2-Feb-2018 432 433PyPI: https://pypi.python.org/pypi/wxPython/4.0.1 434Extras: https://extras.wxPython.org/wxPython4/extras/ 435Pip: ``pip install wxPython==4.0.1`` 436 437This release is a quick hot-fix of some issues discovered in 4.0.0 just after 438the release, plus a bit of low-hanging fruit that was easy to squeeze in too. 439Changes in this release include the following: 440 441* A fix for a segfault that happens upon startup on newer linux releases. (#648) 442 443* Set LD_RUN_PATH for the wxWidgets part of the build so the wx libs that are 444 loaded by other wx libs can be found successfully. (#723) 445 446* Use wxApp::GetInstance to check if there is an existing wxApp object. (#720) 447 448 449 450 451 4524.0.0 "The Phoenix Takes Flight!" 453--------------------------------- 454* 31-Jan-2018 455 456PyPI: https://pypi.python.org/pypi/wxPython/4.0.0 457Extras: https://extras.wxPython.org/wxPython4/extras/ 458Pip: ``pip install wxPython==4.0.0`` 459 460Changes in this release include the following: 461 462* Fixes in wx.aui to properly transfer ownership of the menubar, and also some 463 tweaks in the AUI_MDI sample in the demo. (#540) 464 465* Added a wx.BUILD_TYPE value to distinguish between development, snapshot, 466 and release builds. The value is also appended to wx.PlatformInfo. (Thanks 467 Mesalu!) 468 469* Fix crash when trying to fetch multiple items from a composite data object 470 in wx.DropTarget.OnData. (#550) Also fixed the CustomDragAndDrop sample to 471 not fail on Python 2.7. 472 473* Add ability for wxArray wrappers to return a copy of the item in the 474 ``__getitem__`` method. This solves problems where an array that is the 475 return value of some method call is indexed immediately and a reference to 476 the array is not held, which could result in garbage values for the indexed 477 item. Currently this is turned on for just GridCellCoordsArray, but others 478 can be switched in the future if needed. (#297) 479 480* Add missing ``wx.GetLocale`` function. (#572) 481 482* Add methods to wx.TextCtrl for output "file-like" compatibility. (#578) 483 484* Fix object ownership issue for menus added to toolbar items. (#580) 485 486* Updated SIP to version 4.19.5. One of the new features of this version is 487 that integer overflows are no longer silently truncated and ignored. In 488 other words, if a wrapped API has a parameter that is a C int type, and you 489 pass a value that is larger than what will fit in that type of integer then 490 an OverflowError exception will be raised. 491 492* Fixed wx.richtext.RichTextBuffer.GetExtWildcard to return a tuple of 2 493 values, as was done in Classic. (#594) 494 495* Various fixes in UltimateListCtrl, HyperTreeList and CheckListCtrlMixin. 496 (#592, #349, #612) 497 498* Fixes in TextEditMixin to ensure that the new value is passed in the 499 event. (#605) 500 501* Fix comparing DataViewItem and TreeListItem objects with None. (#595) 502 503* Fix event type name in wx/lib/sheet.py (#613) 504 505* The wx.MessageDialog methods which take ButtonLabel parameters are now able 506 to accept either strings or stock IDs. (#607, #276) 507 508* Fix wx.EvtHandler.Unbind to work correctly when specifying the handler and 509 it is a bound method. (#624) 510 511* Fix OGL's ShapeCanvas to draw properly when the window is scrolled, and 512 to also adjust the mouse coordinates, etc. (#635) 513 514* Set a default background color for the generic buttons. (#651) 515 516* Fixed HtmlWindow's OnFoo virtual methods so calls to them are propagated to 517 the Python class. (#642) 518 519* Fixed wx.CallLater to explicitly hold a reference instead of depending on an 520 uncollectable cycle to keep the instance around. Like before the cycle is 521 broken and the saved reference is deleted after the timer expires and the 522 callable has been called. (#457) 523 524* Although it's more or less just an implementation detail, add wrappers for 525 wx.aui.AuiTabCtrl so references to it will get the correct type. (#664) 526 527* List-like wrapper classes generated for accessing wxLists and wxArrays now 528 support reverse indexing. (#669) For example:: 529 530 child = panel.GetChildren()[-1] 531 532 533* Ported some of the classes in Classic's gizmos module from C++ to Python, 534 including LEDNumberCtrl, DynamicSashWindow, and TreeListCtrl. The classes 535 are now located in the wx.lib.gizmos package, with a compatibility module at 536 the old wx.gizmos location. Please note that this TreeListCtrl class is a 537 very different implementation than wx.dataview.TreeListCtrl, although there 538 is some overlap in purpose. In addition, the new TreeListCtrl class is not 539 actually a port from the old gizmos.TreeListCtrl but rather just a thin 540 layer around AGW's HyperTreeList. This means that if you are using a non- 541 default style flag you'll need to pass it to the agwStyle parameter instead 542 of the style parameter. 543 544* Fix crash when deleting all wx.dataview.TreeListCtrl items with wxGTK3. 545 (#679, #704) 546 547* Fix displaying '&' in the label of wx.RadioBox on GTK. (#39) 548 549* Fix problems of the wrong C++ method being called in wx.ProgressDialog on MS 550 Windows. (#701) 551 552* Fixed how the scrollbar events are captured in DynamicSashWindow in order to 553 fix regression in the sample. (#687) 554 555* Allow extra CLI args to be passed to build.py by setting WXPYTHON_BUILD_ARGS 556 in the environment. 557 558* Added context manager methods to wx.DC that explicitly destroys the C++ 559 part of the DC upon exit. Using DCs as context managers is not required, but 560 can be handy in the rare cases where something holds on to a DC for too 561 long, perhaps unintentionally. (#680) 562 563* Fixed crash due to too aggressive management of wxModules when we load 564 subordinate extensions that have their own wxModules (wx.html, wx.adv, etc.) 565 (#688) 566 567* Fixed StyledTextCtrl.MarkerDefineRGBAImage and RegisterRGBAImage methods to 568 be able to accept any Python buffer compatible object for the pixel data. (#716) 569 570 571 572 573 5744.0.0b2 -- "Hurricanes, Floods, and Forest Fires! Oh My!" 575--------------------------------------------------------- 576* 16-Sept-2017 577 578PyPI: https://pypi.python.org/pypi/wxPython/4.0.0b2 579Extras: https://extras.wxPython.org/wxPython4/extras/ 580Pip: ``pip install wxPython==4.0.0b2`` 581 582Changes in this release include the following: 583 584* Added a deprecated compatibility helper for wx.CustomDataFormat. 585 586* Transfer ownership of the wx.EvtHandler object when pushing/popping 587 them, and also for Set/RemoveEventHandler. (#443) 588 589* Add missing wx.VScrolledWindow methods listed in the docs as 590 deprecated but still present. (#441) 591 592* Fixed copy/paste error in wx.BusyInfo.__exit__ (#449) 593 594* Added new tool wxget, (a minimal wx implementation of wget) 595 596* Added new tools wxdocs and wxdemos to launch the respective items, 597 fetching and unpacking as required. (#437) 598 599* Fixes to ensure that the locale message catalogs are included in the 600 release files. (#464) 601 602* Fix wx.ListCtrl.SetItemData to check that the data value is not out 603 of the range of a C long. (#467) 604 605* Changed the default port on *nix builds to be GTK3. The new 606 ``--gtk2`` flag for build.py can be used to force a build for GTK2 607 instead, and the ``--gtk3`` flag still exists, but defaults to True 608 unless ``--gtk2`` is specified. Please note that there is currently 609 no auto-detection of whether GTK3 is available or not, so if you 610 know you need to build for GTK2 then you need to use the build flag, 611 and there is currently no way to specify that flag for builds 612 performed by pip. (#431) 613 614* Fix parameter names in Toolbar.AddTool methods to be 615 consistent. (#475) 616 617* Remove inconsistent GetVirtualSize method in ScrolledWindow and let 618 it be inherited from wx.Window instead. (#474) 619 620* Fix crashing bug caused by importing a module that reinitializes the 621 wxModule system after having imported wxpyTag. (#468) 622 623* Fix missing methods in various DataObject classes. (They were 624 actually accidentally marked "private" when they should have been 625 public.) (#480) 626 627* Add missing ListCtrl.DeleteAllColumns. (#486) 628 629* Various fixes in the demo. 630 631* Fixed improper initial scale factor in wx.lib.agw.speedmeter 632 633* Fix for calls to wx.Notebook.HitTest calling the wrong instance 634 (base class version) of the method. (#499) 635 636* Add wx.Simplebook class. 637 638* Fix exception in wx.lib.agw.customtreectrl when calling 639 SortChildren. (#463, #500) 640 641* Fix missing imports needed for drawing the legend in 642 wx.lib.plot. (#503) 643 644* Fix other instances of list.sort using old cmp-style ordering 645 functions. (#508) 646 647* Update SizedControls to do a sanity check on the parent's sizer, as 648 GetSizer can return None for SizedParent under certain 649 circumstances, such as when AUI reparents the control during pane 650 movement. (#523, #537) 651 652* Added Vagrant configs for Fedora 23 and Fedora 26, and dropped 653 Fedora 24. Wheels built on F23 can also be used on F24 and F25, and 654 F26 adds Python 3.6 support. 655 656* Fix bitwise OR bug in wx.lib.agw.aui.framemanager. (#493) 657 658* Fix bugs in wx.lib.plot when saving file. (#526) 659 660* Fix integer division bug in ultimatelistctrl. (#528) 661 662* Fix bug in wx.SearchCtrl.SetCancelBitmap (#532) 663 664* Fixed property grid SetPropertyValue method to not truncate floating 665 point values to integers, and a couple other possible incorrect 666 conversions. (#536) 667 668 669 670 671 6724.0.0b1 673------- 674* 22-July-2017 675 676PyPI: https://pypi.python.org/pypi/wxPython/4.0.0b1 677Extras: https://extras.wxPython.org/wxPython4/extras/ 678 679Changes in this release include the following: 680 681* Various little tweaks and fixes in some of the demo samples. 682 683* Fixes in wx.lib.imagebrowser so it looks and acts better on OSX. 684 685* Fixed problem due to wxModules not being initialized when non-core 686 extensions are imported. 687 688* Fixed issue in wx.TreeItemId comparison methods affecting PyCrust and 689 other tools. 690 691* Restore the simplified names for the wxGridSelectionModes enum that were 692 present in Classic. 693 694* Add accessors for the internal widgets in the wx.EditableListBox. 695 696* Fixes in wx.lib.eventwatcher to avoid deprecated methods and other Phoenix 697 related changes. 698 699* Correctly transfer ownership of the input stream in wx.FSFile. 700 701* Ensure the license files are getting into the source tarball and the 702 binary wheel files. 703 704* Add wrappers for the classes derived from wxImageHandler. 705 706* Fix wx.lib.plot.polyline to not attempt to draw the spline if there are 707 less than 3 points. 708 709* Transfer the ownership of the prop arg in wx.propgrid.PGProperty.AddChild 710 and AddPrivateChild. Various other fixes in wx.propgrid classes for 711 backwards compatibility and to fix problems caused by mismatches between 712 customizations that were done for Classic and how Phoenix does things by 713 default. Also solved some problems in the PropertyGrid sample in the demo. 714 715* Add missing HtmlCell.FindCellByPos. 716 717* Enhance the DLG_UNIT convenience function such that if something other than 718 a wx.Point or wx.Size was passed in then the return value will be a tuple. 719 This eliminates some surprises that are possible due to auto-conversion of 720 tuples to points or sizes. 721 722 723 724 7254.0.0a3 726------- 727* 3-June-2017 728 729Fixed a few cases where the GIL was not acquired before building tuples of 730values. The problems associated with this (hangs or crashes) were sporadic and 731seemingly random, and did not appear until there was a background thread that 732was very busy. Running under a debug build of Python revealed the problem 733almost immediately. Yay Python! 734 735Return an integer value from wx.DC.GetHandle instead of a wrapped voidptr 736object, similar to how it is done for wx.Window.GetHandle. 737 738Make wx.TreeItemID hashable, with meaningful hash value and equality 739operators, so it can be used as a dictionary key in Py3. 740 741Fixed crash in wx.grid.GridTable.GetAttr, and potentially other cases of 742classes derived from wx.RefCounter. 743 744Add ShowPage and IsRunning methods to wx.adv.Wizard. 745 746Fixed various GTK specific bugs and other cleanup in wx.lib.agw.aui. 747 748Updated to SIP 4.19.2 749 750Restored builders for Python 3.4 to the buildbot. 751 752Restore the wrappers for GetPaperSize and SetPaperSize to wx.PrintData. 753 754Fix crashing problem when a wx.TreeItemId was compared with None. 755 756Fix for missing checkbox images in CheckListCtrlMixin on Linux and OSX. 757 758Fix another crashing problem in propgrid, and a few other propgrid issues too. 759 760The release version of the documentation can now be found at 761https://docs.wxPython.org/ The documentation created during the 762snapshot builds is still located at https://wxPython.org/Phoenix/docs/html/ 763 764 765 7664.0.0a2 767------- 768* 6-May-2017 769 770This build of wxPython is based on the official wxWidgets 3.0.3 release. 771 772This release is mostly various bug fixes and other tweaks, such as: 773 774* Allow numpy arrays to be auto-converted to simple sequence value types like 775 wx.Size, wx.Colour, etc. 776 777* A couple of fixes to lib/agw/aui to prevent segfaults under OSX when 778 AuiNotebook tabs are closed 779 780* Fix wx._core.wxAssertionError in wx.lib.agw.aui when dragging a notebook tab 781 782* Fix the [G|S]etClientData methods in wx.CommandEvent to behave the same 783 way they are in wx.ClientDataContainer. 784 785* Fix the SetFonts methods in wx.html classes 786 787* Several fixes in wx.dataview related to overriding methods 788 789* Fixed some flickering in wx.lib.agw.aui.framemanager 790 791* Fixed problem with wrong implementation of wxNotebook::DeleteAllPages being 792 called on Windows 793 794* Added the missing wx.grid.GRID_AUTOSIZE flag 795 796* Fixed crash due to the object created in an XmlSubclassFactory being 797 destroyed too soon 798 799* Fixed crash in wx.lib.agw.toasterbox 800 801* Fixed crash when using wx.xrc.XmlSubclassFactory 802 803* Fixed wx.grid.GridTableBase.GetValue and related methods to work more like 804 they did in Classic, so non-string values can be used a little more 805 easily. 806 807Added building and bundling of the PDB files for wxWidgets and the wxPython 808extensions on Windows. Until a better place is found they will be 809downloadable from https://wxPython.org/Phoenix/release-extras, along with 810archives for the documentation as well as the demo and samples. 811 812 813 814 8154.0.0a1 "The Phoenix Rises!" 816----------------------------- 817* 15-Apr-2017 818 819This is the first official release of the wxPython Phoenix project! ("And the 820crowd goes wild!") Don't let the fact that it is marked as an "alpha" release 821scare you away. It is an alpha simply because this is the **first** in several 822ways: 823 824* It's the first real release of Phoenix, which is built on a different 825 foundation than Classic wxPython was. 826 827* It's the first wxPython release intended to be fully available from PyPI and 828 buildable/installable by pip. 829 830* It's the first release for Python 3. 831 832* And there are still a few things that are not finished or polished yet. 833 834But even with all that, many people have been using the pre-release snapshots 835of Phoenix for quite a while now, and it has been relatively stable and solid 836for them. 837 838Due to some things being cleaned up, reorganized, simplified and dehackified 839wxPython Phoenix is not completely backwards compatible with wxPython Classic. 840This is intended. In general, however, the API differences tend to be minor 841and some applications can use Phoenix with slight, or even no modifications. 842In some other cases the correct way to do things was also available in Classic 843and it's only the wrong way that has been removed from Phoenix. For more 844information there is a Migration Guide document available at: 845https://wxpython.org/Phoenix/docs/html/main.html 846 847The new wxPython API reference documentation, including all Python-specific 848additions and customizations, and docs for the wx.lib package, is located at: 849https://wxpython.org/Phoenix/docs/html/main.html 850 851 852 853 8543.0.2.0 855------- 856* 28-Nov-2014 857 858Fixed wxPython bug on OSX that was preventing the wx.App's virtual 859methods related to handling App Events, like open-files or reopen-app, 860from being handled correctly. 861 862NOTE: It appears that wxPython applications on OSX will now always be 863getting an initial Apple Event(s) sent to `MacOpenFiles` coresponding to 864the name of the script and args on the python command-line. 865 866Added patch #15142 which adds support for building with and using GTK3 867as the wx platform. Thanks kosenko! 868 869Fixed the OSX Carbon build to actually use Carbon. (Because of a 870change in defaults it was actually building the Cocoa build instead.) 871 872Pythonized DataViewCtrl.HitTest. It now takes just the Point parameter 873and returns the DataViewItem and DataViewColumn objects. If there is 874no item at that point then item will evaluate to False, (or you can 875use its IsOk method.) For example:: 876 877 item, col = ctrl.HitTest(point) 878 if item: 879 doSomething(item, col) 880 881 882 883 884 8853.0.1.1 886------- 887* 9-Sept-2014 888 889The previous release managed to escape out into the wild before the 8903rdParty addons were updated from the source repository. This release 891includes the newest code from AGW and FloatCanvas which should have 892been in the last release. 893 894Fixed "wxPyHtmlWinTagHandler, no destructor found." error. 895 896 897 8983.0.1.0 899------- 900* 6-Sept-2014 901 902Turned on a workaround for a bug that caused crashes on Windows XP. 903This was due to a Micorsoft bug in optimizing access to TLS when a 904DLL is dynamically loaded at runtime with LoadLibrary, such as how 905Python extension modules are loaded. See 906http://trac.wxwidgets.org/ticket/13116 907 908Fixed "wxPyXmlSubclassFactory, no destructor found." error. 909 910Some Pubsub and AGW updates. 911 912Ignore some code in wxOSX that was preventing stock data format IDs 913from being used with custom data objects. (See 914https://groups.google.com/forum/#!topic/wx-dev/wFxevpvbhvQ/discussion) 915 916Various other fixes and enhancements from wxWidgets. 917 918 919 9203.0.0 921------- 922* 25-Dec-2013 923 924Merry Christmas (or your December holiday of choice)! 925 926No new features but lots of bug fixes in wxWidgets and of course the 927bump (finally!) up to 3.0. 928 929 930 931 9322.9.5.0 933------- 934* 31-Aug-2013 935 936wx.media.MediaCtrl on OSX-cocoa now has a functioning back-end using 937the QTKit framework, so it works when running in either 32-bit or 93864-bit mode. 939 940Printing triggered from a Javascript window.print() statement will now 941work on OSX when using the old wx.webkit or the new wx.html2 browser 942controls. 943 944Updated Scintilla code to verison 3.21 945 946Lots of fixes and improvements in the wxWidgets code. 947 948Changed the wx.DateTime.Parse* methods to work like they did in 949wxPython 2.8, they now return an integer indicating how far in to 950the string that the parser parsed, or -1 on error. 951 952Updated wx.lib.pdfviewer with patches from David Hughes. 953 954 955 956 957 9582.9.4.1 959------- 960* 24-July-2012 961 962A quick patch release to fix some C++ headers for the wxGTK port not 963getting installed, causing a build error in wxPython. 964 965 966 967 9682.9.4.0 969------- 970* 21-July-2012 971 972wx.lib.pubsub: Pusub now defaults to the new "kwarg" version of the 973API. In order to continue using the original "arg1" API you will need 974to import wx.lib.pubsub.setuparg1 before importing any other pubsub 975modules. 976 977The wx.RA_USE_CHECKBOX and wx.RB_USE_CHECKBOX constants were removed. 978They were only used by the incomplete PalmOS port which has been 979removed from the wxWidgets source tree. 980 981wx.Font: There is now GetStrikethrough and SetStrikethrough methods. 982 983wx.StaticBox: Fixed the client origin and client size on MSW so 984children of the static box should not overlap the box's label or 985border lines. 986 987Added wx.HTMLDataObject 988 989Applied a patch from Sam Partington that fixes some threading issues 990in the wrapper code and other cool stuff. 991 992Added the missing wx/lib/agw/data dir to the installers. 993 994Add wx.EnhMetaFile and wx.EnhMetaFileDC for MSW. This DC type is what 995is used by the print framework in the print preview window, so it 996needed to be wrapped so self.GetDC() would work properly. 997 998 999 1000 1001 1002 1003 10042.9.3.1 1005------- 1006* 29-Dec-2011 1007 1008Corrected some problems in the installer scripts that were not 1009including some new files. 1010 1011Re-enabled the wrappers for the wx.GenericDatePickerCtrl class. 1012 1013Applied some patches from Werner Bruhin for the sized controls classes 1014and demo, and which also adds the SizedScrolledPanel class. 1015 1016Fixed several other minor bugs discovered in the last release. 1017 1018 1019 1020 10212.9.3.0 1022------- 1023* 26-Dec-2011 1024 1025wx.ListCtrl: Added a static method named HasColumnOrderSupport which 1026returns a boolen value indicating if the column ordering APIs (see 1027next item) are implemented for the current platform. 1028 1029Added methods for querying and manipulating the ordering of the 1030columns (in wx.LC_REPORT mode only.) This is not implemented on all 1031platforms so use HasColumnOrderSupport to find out if the APIs are 1032supported. The new APIs are: GetColumnOrder, GetColumnIndexFromOrder, 1033GetColumnsOrder and SetColumnsOrder. 1034 1035Added wrappers for new WebView classes which came from a successful 1036Google Summer of Code project this year. This new module allows you 1037to embed the platform's native HTML/CSS/Javascript rendering engine in 1038a wx application like we've always been able to do with wx.webkit on 1039Mac or with the various ActiveX modules that we've had for windows, 1040except in the new version it uses the exact same API on all platforms 1041and also provides an implementation for GTK. Currently on Windows the 1042IE Trident engine is used, and WebKit is used on OSX and GTK. The 1043code is organized to eventually allow alternate backend renderer 1044implementations. The GTK version requires at least version 1.3.1 of 1045libwebkitgtk-dev, which is the default on most of the recent Linux 1046distributions. Please note that although these new classes and 1047libraries are using names based on "WebView" I have put the wxPython 1048verison of them in the wx.html2 module because the wxWebKit project 1049already produces a wx.webview module for wxPython. 1050 1051The wx.lib.pubsub package has been updated to the latest verison and 1052several examples have been added to the samples folder. 1053 1054 1055 1056 10572.9.2.4 1058------- 1059* 9-Sept-2011 1060 1061Try, try again... Fixed an indentation bug that crept in somewhere 1062along the way. 1063 1064 1065 10662.9.2.3 1067------- 1068* 8-Sept-2011 1069 1070Fixed a bug that was causing the base class methods of 1071wx.richtext.RichTextCtrl to be called incorrectly, causing a crash. 1072 1073 1074 10752.9.2.2 1076------- 1077* 5-Sept-2011 1078 1079Fixed a problem with wx.ListCtrl.InsertStringItem when an imageIndex 1080was not passed. Change the listctrl to not always assume that there 1081is an image. 1082 1083Several fixes for the wx.lib.agw modules. 1084 1085Fixed a problem in wxGrid on OSX-cocoa where it would close the cell 1086editor immediately because of extra kill focus events. 1087 1088Added an OSX implementation for the wxRegion constructor taking a 1089sequence of points. 1090 1091Added the ability to use the Cairo backend for wx.GraphicsContext on 1092Windows. The Cairo libraries are loaded dynamically on-demand, so 1093there is not a runtime dependency on Cairo for applications that do 1094not use it. The Cairo DLL and its dependencies are bundled with the 1095wxPython installers. We expect to be able to also add dynamic loading 1096of Cairo for OSX soon, (but if anybody would like to volunteer that 1097would be nice too.) To create a Cairo graphics context you first 1098have to get the Cairo GraphicsRenderer and then use it to create the 1099context, like this:: 1100 1101 cr = wx.GraphicsRenderer.GetCairoRenderer() 1102 ctx = cr.CreateContext(dc) 1103 1104If either GetCairoRenderer or CreateContext fails (either it's not 1105supported or the Cairo shared libraries can not be found) then None 1106will be returned, so be sure to check the return values. Using Cairo 1107on Windows is usually faster and seems to be of better quality than 1108using the GDI+ backend. 1109 1110The wx.GCDC class can now be constructed with an already exisiting 1111wx.GraphicsContext. 1112 1113The wx.lib.softwareupdate module has been added. It implements a 1114class designed to be mixed with wx.App in a derived class and provides 1115code for enabling your applications to update themselves when new 1116releases are made available (very similar to how most applications on 1117the Mac will prompt you to allow it to self-update.) This is based on 1118the Esky library available from the Python package index at 1119http://pypi.python.org/pypi/esky. To enable your application to be 1120self-updatable it must be packaged as an Esky bundle, which is a .zip 1121file with a certain structure and meta-data, which means that you will 1122have to modify your setup.py files to enable this. There is an 1123example showing how to do this in the samples/doodle folder of the 1124wxPython source tarball or the docs and demos package. 1125 1126Added a MultiMessageDialog class to wx.lib.dialogs that is similar to 1127the stock wx.MessageDialog, but is additionally able to have a 1128scrollable message area, custom icons, and customized button labels, 1129(although they will still use the stock IDs). There is also a 1130MultiMessageBox Function that is like the wx.MessageBox function. 1131 1132 1133 1134 1135 11362.9.2.1 1137------- 1138* 23-July-2011 1139 1140Just before release of 2.9.2.0 an important bug was discovered in the 1141wxMSW printing code related to converting to and from native printer 1142definitions. To correct that glitch this .1 release was made with just 1143that one additional difference from the official wxWidgets 2.9.2 1144source tree. 1145 1146 1147 11482.9.2.0 1149------- 1150* (not released) 1151 1152Added wx.CommandLinkButton. This button has both a label and a note 1153displayed on it. On Windows 7 it is a new native widget type, on the 1154other platforms it is a generic implementation using wx.Button. 1155 1156Added wx.lib.itemspicker. This class allows items to be selected from 1157a list by moving them to another list. 1158 1159Added wx.UIActionSimulator, which is able to programatically generate 1160platform specific keyboard and mouse events, (with varying degrees of 1161success depending on the platform.) 1162 1163Added the ability to the build tools to make a Mac Framework for 1164wxWidgets, and use it in the wxPython build. (We're still ironing out 1165some issues so it's not part of the release builds yet.) 1166 1167Added an installer EXE for the wxWidgets source tree, including the 1168LIBs and DLLs that were used for the wxPython build on Windows. This 1169enables 3rd party extension developers to build their libraries and 1170extensions such that they will use the same options and the same libs 1171as wxPython, and will replace the -devel tarball included with prior 1172releases. 1173 1174There have been many improvements to the wxOSX-Cocoa port, making it 1175a more usable port. The other ports have also improved as well. 1176 1177The wx.TaskBarIcon in the wxOSX-cocoa port can now either be a custom 1178dock icon as before, or a status icon in the menu bar, and can be 1179selected by passing wx.TBI_DOCK or wx.TBI_CUSTOM_STATUSITEM to the 1180wx.TaskBarIcon constructor. The default is menubar status item. The 1181type flag is ignored on the other ports. 1182 1183wx.ToggleButtons are now part of the new common button class hierarchy 1184and so they can now have bitmaps instead of or in addition to their 1185text labels. 1186 1187Udpates from the AGW and Editra projects. 1188 1189 1190 1191 11922.9.1.1 1193------- 1194* 14-Oct-2010 1195 1196wx.Bitmap: Add ConvertToDisabled method. 1197 1198wx.AboutBox: Added support for setting a long version string in 1199addition to the normal version string. 1200 1201wx.App: Add ScheduleForDestruction, which will allow you to cause a 1202window to be destroyed sometime in the near future. (Most likely to 1203be used to ensure that there are no more envents pending for the 1204widget.) 1205 1206More methods and properties moved from wx.MouseEvent to the 1207wx.MouseState base class. Same for wx.KeyEvent and wx.KeyboardState, 1208which is used to hold modifier key states, and which is also a base 1209class of wx.MouseState. Note that properties rightDown, leftDown and 1210middleDown have been changed to rightIsDown, leftIsDown and 1211middleIsDown. 1212 1213wx.Button can now have both a text and a bitmap label (or just one or 1214the other.) wx.BitmapButton is pretty much redundant and will likely 1215be phased out sometime in the future. (The OSX Carbon build does not 1216support this new feature, but the Cocoa build does.) 1217 1218wx.ComboBox: Added Popup and Dismiss methods for programatically 1219showing and hiding the popup, although they are not implemented for 1220all platforms yet. 1221 1222wx.GenericDirCtrl can now select multiple paths. 1223 1224Removed the deprecated wx.Effects class. 1225 1226wx.Image: Added ConvertToGreyscale and ConvertToDisabled methods, also 1227new resampling scaling methods. 1228 1229wx.Toolbar now supports inserting stretchable space between tools. 1230 1231wx.Dialog can now be Window-modal or the usual App-modal. On Mac this 1232results in the dialog sliding down in a sheet from the parent window's 1233top edge. For platforms that don't support Window-modal dialogs it 1234will fall back to an App-modal behavior. See 1235wx.Dialog.ShowWindowModal and the wx.Dialog sample in the demo. 1236 1237wx.wizard.Wizard: Add a new EVT_WIZARD_PAGE_SHOWN event. 1238 1239Added wx.InfoBar, which is similar to the message bar used in some web 1240browser windows that is shown above or below the content window to 1241display messages and/or buttons in a way that doesn't interupt the 1242user's workflow like a modal message dialog does, but is much more 1243noticeble than simply putting some text in the status bar. 1244 1245Updated the Scintilla code used by wxStyledTextCtrl to version 2.03. 1246 1247Added wx.GraphicsGradientStop[s] classes and updated the 1248Create*GradientBrush APIs to allow gradients with more than two color 1249stops. Similar changes were also mare to the Cairo specific classes in 1250wx.lib.graphics to help maintain compatibility between the two. 1251 1252Added the wx.lib.pdfviewer package which is a contribution from David 1253Hughes. It implements a simple cross-platform PDF viewer widget using 1254the 3rd party pyPdf package for parseing the PDF file. It's not super 1255fast nor is it feature complete, but for simple and small PDF files 1256(such as those produced by ReportLab) it works well. 1257 1258Probably the most notable change in this release is the addition of 1259the OSX-Cocoa build, including a 64-bit architecture in the fat 1260binaries. The Cocoa port requires at least OSX 10.5, and the Carbon 1261port requires 10.4 or better. There are still some rough edges in the 1262Cocoa port, but a lot does work and works well. If you run into 1263issues that seem to be Cocoa specific then be sure to create tickets 1264for them at http://trac.wxwidgets.org with the component set to 1265wxOSX-Cocoa, after having searched for any existing tickets for the 1266same issue of course. 1267 1268 1269 1270 1271 12722.9.0.1 1273------- 1274* 22-Jan-2010 1275 1276NOTE: This release was done mainly to get a 2.9.x preview build out to 1277the wxPython contributors to use for testing their code with wxPython 12782.9. There will not be a general official release of this version. 1279 1280NOTE: When using the stock Apple Python on OS X 10.6 it will default 1281to running in 64-bit mode if your machine is a 64-bit architecture. 1282wxPython is still using Carbon on OS X which is 32-bit only, so there 1283is no 64-bit personality in the universal binaries and it will raise 1284an exception when you import wx. wxPython will be switching to Cocoa 1285soon, but in in the meantime you can force the stock Python to run in 128632-bit mode by running this command in a Terminal session:: 1287 1288 defaults write com.apple.versioner.python Prefer-32-Bit -bool yes 1289 1290 1291wxGTK: Implemented support for underlined fonts in wx.StaticText 1292 1293wxGTK: wx.TopLevelWindow.SetSizeHints size increments now work 1294 1295Added wx.EventBlocker class 1296 1297wxGTK: Make wx.TopLevelWindow.GetSize() return the size of the window 1298including the decorations (not just the client size) and updated 1299SetSize() to account for this as well. 1300 1301wxMSW: For consistency with wxGTK, when a top level window is 1302minimized the size returned from GetSize will be the restored size, 1303not the size of the icon window. 1304 1305wxGTK: For consistency with wxMSW, when a top level window is 1306minimized the size returned from GetClientSize will be (0,0). 1307 1308wxGTK: Color cursors now supported. 1309 1310Added wx.DC.StretchBlit() for wxMac and wxMSW (Vince Harron) 1311 1312Added support for labels for toolbar controls (Vince Harron) 1313 1314wxGTK: Setting foreground colour of single line wx.TextCtrl now works. 1315 1316wxMac: Corrected top border size for wxStaticBox with empty label (nusi) 1317 1318wx.Window.IsEnabled() now returns false even if the window parent, and 1319not the window itself, is disabled and added IsThisEnabled() 1320implementing the old IsEnabled() behaviour. 1321 1322wxGTK: Now using the native tab traversal functions instead of 1323simulating it ourselves. 1324 1325Generating wx.NavigationKeyEvent events doesn't work any more under 1326wxGTK (and other platforms in the future), use wx.Window.Navigate() or 1327NavigateIn() instead. 1328 1329wx.glcanvas.GLCanvas: The constructor has been changed slightly in 1330order to make it consistent across all the platforms. The C++ version 1331now looks like this:: 1332 1333 wxGLCanvas(wxWindow *parent, 1334 wxWindowID id = -1, 1335 const int *attribList = NULL, 1336 const wxPoint& pos = wxDefaultPosition, 1337 const wxSize& size = wxDefaultSize, 1338 long style = 0, 1339 const wxString& name = wxPyGLCanvasNameStr, 1340 const wxPalette& palette = wxNullPalette); 1341 1342Also in GLCanvas, all the platforms now support the new pardigm of 1343using a separate GLContext object, and associating it with the canvas 1344using canvas.SetCurent(context). 1345 1346wxMac: The get-url apple event is now supported, simply override 1347wx.App.MacOpenURL to receive it. You'll also need to have appropriate 1348meta-data in your app bundle to specify the protocol of the URLs that 1349your app can respond to. 1350 1351wx.VScrolledWindow has been refactored, and new wx.HScrolledWindow and 1352wx.HVScrolledWindow classes have been added. Just like 1353wx.VScrolledWindow they allow scrolling with non-uniform scroll 1354increments, where the size of each item is determined by making 1355callbacks into the derived class. The H version handles horizontal 1356scrolling and the HV version handles both horizontal and vertical 1357scrolling. 1358 1359Support wx.APPLY and wx.CLOSE in CreateStdDialogButtonSizer() 1360 1361wx.CheckListBox now looks more native, especially under XP. 1362 1363Sizers distribute only the extra space between the stretchable items 1364according to their proportions and not all available space. We believe 1365the new behaviour corresponds better to user expectations but if you 1366did rely on the old behaviour you will have to update your code to set 1367the minimal sizes of the sizer items to be in the same proportion as 1368the items proportions to return to the old behaviour. 1369 1370Added support for toolbar buttons with dropdown menus. 1371 1372Added support for mouse events from two auxillary mouse buttons. 1373 1374The methods that wx.TextCtrl and wx.ComboBox have in common have been 1375factored out into a new base class that they share, wx.TextEntry. 1376 1377wx.richtext.RichTextCtrl and related classes were refactored such that 1378the RTC uses the same attributes object as wx.TextCtrl. This means that 1379instead of using wx.richtext.RichtextAttr or TextAttrEx you'll just 1380use wx.TextAttr instead. Also, all of the flags and styles related to 1381the text attributes have been moved out of the wx.richtext module and 1382into the main wx namespace. Finally, wx.TextCtrl and RichTextCtrl now 1383share some common base classes. 1384 1385wx.Brush.MacSetTheme has been removed, and has been replaced by being 1386able to create a wx.Colour using a Mac themed brush ID instead. So if 1387you used to have code like this:: 1388 1389 brush = wx.Brush(someColour) 1390 brush.MacSetTheme(kThemeBrushDialogBackgroundActive) 1391 1392You'll want to replace it with code like this:: 1393 1394 brush = wx.Brush(wx.MacThemeColour(kThemeBrushDialogBackgroundActive)) 1395 1396 1397wx.calendar: A native implementation of the CalendarCtrl was added 1398for the Windows and GTK ports, however the native classes tend to not 1399implement all of the functionality that the old generic version of the 1400control provides. To be able to provide a way for you to work around 1401issues related to this I've added wrappers for both the CalendarCtrl 1402and also GenericCalendarCtrl, so if you depend on the ability to do 1403things like set holidays or change the attributes of specific days in 1404the calendar then please change your code to use the GenericCalendarCtrl 1405class instead. 1406 1407Added wx.NotificationMessage. 1408 1409The wx.grid.GridCellEditor.EndEdit method has been split into two 1410methods, EndEdit and ApplyEdit. See the GridCustEditor sample in the 1411demo for an example of their use. 1412 1413Processing of pending events can be temporarily stopped and then 1414restarted. See wx.App.SuspendProcessingOfPendingEvents and 1415ResumeProcessingOfPendingEvents. 1416 1417Added wx.App.YieldFor and related methods which can control what 1418categories of events can be processed during the yield. 1419 1420Spin buttons and spin controls now have their own event types instead 1421of reusing the scroll events. 1422 1423The public data members of wx.MouseEvent (m_shiftDown, etc.) have been 1424removed, but since wx.MouseEvent now derives from wx.MouseState you 1425can use its properties (shiftDown, etc.) instead for assignments to 1426those member values. 1427 1428Removed the Set/GetLogicalFunction methods from wx.GraphicsContext. 1429 1430Added Set/GetCompositionMode methods to wx.GraohicsContext, and also 1431Set/GetAntialiasMode methods. The composition mode settings allow you 1432to use the classic Porter-Duff compositions when drawing. See 1433http://keithp.com/~keithp/porterduff/p253-porter.pdf 1434 1435wx.grid.Grid: Added methods CalcRowLabelsExposed, 1436CalcColLabelsExposed, CalcCellsExposed, DrawRowLabels, DrawRowLabel, 1437DrawColLabels, and DrawColLabel. 1438 1439Added the wx.lib.mixins.gridlabelrenderer module. It enables the use 1440of label renderers for Grids that work like the cell renderers do. See 1441the demo for a simple sample. 1442 1443wx.App: OnExceptionInMainLoop and FilterEvent can now be overridden. 1444 1445Added wx.lib.msgpanel, which provides a class derived from wx.Panel 1446that can look and feel much like a wx.MessageDialog. 1447 1448Added wx.lib.progressindicator which is a simple class with a label 1449and a guage that can be used to show either specific or indeterminate 1450(pulsed) progress of some sort. It works well in status bars, and can 1451be set to hide itself when not active. 1452 1453Added wx.lib.nvdlg, which provides a generic dialog for editing the 1454values of name/value pairs. You're able to specify some styles and 1455attributes for each text control if needed. 1456 1457Wrappers for the propgrid library, maintained by Jaakko Salli, have 1458been added to wxPython. 1459 1460A new build script has been added to wxPython, originally created by 1461Kevin Ollivier, which greatly simplifies building both wxWidgets and 1462wxPython for the average user. I now use it in my day-to-day builds 1463as well as from the scripts which create the preview and release 1464builds. See the new BUILD.txt document for more information. 1465 1466 1467 1468 1469 14702.8.12.1 1471-------- 1472* 23-July-2011 1473 1474Relax an assert that was added to Bind() in the previous release so 1475None will be an acceptable value for the handler parameter again. 1476 1477Added ToolTipString property to wx.Window. 1478 1479Other minor fixes. 1480 1481Updates from the AGW and Editra projects. 1482 1483 1484 14852.8.12.0 1486-------- 1487* 16-April-2011 1488 1489This release is mostly just bug and typo fixes. There are no new 1490major features or enhancements in the core library. 1491 1492 1493 1494 14952.8.11.0 1496-------- 1497* 14-May-2010 1498 1499Lots of bug fixes in both wxWidgets and wxPython. 1500 1501Added the context manager protocol methods to some wx classes so they 1502can be used with the new Python 'with' statement. (The with statement 1503is always available starting in Python 2.6, and can also be used in 1504Python 2.5 with a __future__ import statement.) There are several 1505wx classes where this is a natural fit, such as wx.BusyInfo. The 1506__enter__ and __exit__ methods have also been added to wx.Dialog where 1507it will do the dialog.Destroy() call for you. This means that you can 1508use code like this:: 1509 1510 with MyDialog(self, foo, bar) as dlg: 1511 if dlg.ShowModal() == wx.ID_OK: 1512 # do something with dlg values 1513 1514The list of wx classes that can now be used as context managers is: 1515 1516* wx.Dialog 1517* wx.BusyInfo 1518* wx.BusyCursor 1519* wx.WindowDisabler 1520* wx.LogNull 1521* wx.DCTextColourChanger 1522* wx.DCPenChanger 1523* wx.DCBrushChanger 1524* wx.DCClipper 1525 1526A new class has been added that is also a context manager, called 1527wx.FrozenWindow. It will freeze the window passed to it upon entry to 1528the context, and will thaw the window upon exit from the context. 1529 1530Applied the final version of patch #10959 to the PyCrust code. It 1531adds many enhancements to the Py suite, inlcuding the ability to edit 1532blocks of code (called slices) as a whole before executing them, and 1533also the ability to execute some simple shell commands. 1534 1535Replaced the wx.lib.pubsub module with the new pubsub package from 1536http://pubsub.sf.net. By default it is backwards compatible with the 1537old pubsub module, but it also has a more advanced API available that 1538can be switched on at import time. See the pubsub web site for more 1539details. 1540 1541The wx.Effects class is deprecated. 1542 1543Added Python 2.7 builds for Windows and Mac. 1544 1545Added Debian package builds for Ubuntu 9.10 and 10.4. 1546 1547Many fixes and enhancements for the wx.lib.agw pacakge, including the 1548addition of pybusyinfo, ribbon, ultimatelistctrl and zoombar. 1549 1550 1551 1552 1553 15542.8.10.1 1555-------- 1556* 14-May-2009 1557 1558wx.grid.Grid: Added methods CalcRowLabelsExposed, 1559CalcColLabelsExposed, CalcCellsExposed, DrawRowLabels, DrawRowLabel, 1560DrawColLabels, and DrawColLabel to the Grid class. 1561 1562Added the wx.lib.mixins.gridlabelrenderer module. It enables the use 1563of label renderers for Grids that work like the cell renderers do. See 1564the demo for a simple sample. 1565 1566Solved the manifests problem with Python 2.6 on Windows. wxPython now 1567programatically creates its own activation context and loads a 1568manifest in that context that specifies the use of the themable common 1569controls on Windows XP and beyond. This also means that the external 1570manifest files are no longer needed for the other versions of Python. 1571 1572wx.Colour: Updated the wx.Colour typemaps and also the wx.NamedColour 1573constructor to optionally allow an alpha value to be passed in the 1574color string, using these syntaxes: "#RRGGBBAA" or "ColourName:AA" 1575 1576wx.lib.wxcairo: Fixed a problem resulting from PyCairo changing the 1577layout of their C API structure in a non-binary compatible way. The 1578new wx.lib.wxcairo is known to now work with PyCairo 1.6.4 and 1.8.4, 1579and new binaries for Windows are available online at 1580http://wxpython.org/cairo/ 1581 1582 1583 1584 1585 1586 15872.8.9.2 1588------- 1589* 16-Feb-2009 1590 1591Added the wx.lib.agw package, which contiains most of the widgets from 1592http://xoomer.alice.it/infinity77/main/freeware.html written by Andrea 1593Gavana. Andrea's widgets that were already in wx.lib were also moved 1594to the wx.lib.agw package, with a small stub module left in wx.lib. 1595As part of this addition the demo framework was given the ability to 1596load demo modules from a sub-folder of the demo directory, to make it 1597easier to maintain collections of demo samples as a group. 1598 1599Added the wx.PyPickerBase class which can be used to derive new picker 1600classes in Python. Used it to implement a color picker for Mac that 1601uses a wx.BitmapButton instead of a normal wx.Button. This makes the 1602color picker look and behave lots better on Mac than before. 1603 1604You can now pass the handler function to the Unbind method. If it is 1605given then Unbind will only disconenct the event handler that uses the 1606same handler function, so if there are multiple bindings for the same 1607event type you'll now be able to selectively unbind specific 1608instances. 1609 1610Added a new tool to the Widget Inspection Tool that allows you to watch 1611the events passing through a widget. It can also be used 1612independently, see wx.lib.eventwatcher. 1613 1614 1615 1616 1617 16182.8.9.1 1619------- 1620* 28-Sep-2008 1621 1622Fixed a Python 2.4 compatibility issue in the Editra code. 1623 1624 1625 1626 16272.8.9.0 1628------- 1629* 28-Sep-2008 1630 1631Many minor bug fixes throughout wxWidgets and wxPython. 1632 1633Fixed wx.lib.embeddedimage to work with Python 2.3. 1634 1635Fixed PseudoDC hit testing when pure white or pure black are used. 1636 1637Added support for a 64-bit Windows build for the AMD64 architecture, 1638(a.k.a. x64.) This is for Python 2.5 only and is available only as a 1639Unicode build. 1640 1641Added the wx.EmptyBitmapRGBA factory function. 1642 1643Added the wx.lib.wxcairo module which allows the pycairo package to be 1644used for drawing on wx window or memory DCs. In addition it is able 1645to convert from a native wx.Font to a cairo.FontFace, and it also 1646provides functions for converting to/from wx.Bitmap and 1647cairo.ImageSurface objects. In order to use this module you will need 1648to have the Cairo library and its dependencies installed, as well as 1649the pycairo Python package. For Linux and other unix-like systems you 1650most likely have what you need installed already, or can easily do so 1651from your package manager application. See the wx.lib.wxcairo 1652module's docstring for notes on where to get what you need for Windows 1653or Mac. This module uses ctypes, and depending on platform it may 1654need to find and load additional dynamic libraries at runtime in 1655addition to cairo. The pycairo package used needs to be new enough to 1656export the CAPI structure in the package namespace. I believe that 1657started sometime in the 1.4.x release series. 1658 1659Added the wx.lib.graphics module, which is an implementation of the 1660wx.GraphicsContext API using Cairo (via wx.lib.wxcairo). This allows 1661us to be totally consistent across platforms, and also use Cairo to 1662implement some things that are missing from the GraphicsContext API. 1663It's not 100% compatible with the GraphicsContext API, but probably 1664close enough to be able to share code between them if desired, plus it 1665can do a few things more. 1666 1667Updated wx.Bitmap.CopyFromBuffer to be a bit more flexible. You can 1668now specify the format of the buffer, and the CopyFromBufferRGBA is 1669now just a wrapper around CopyFromBuffer that specifies a different 1670format than the default. Also added the complement method, 1671CopyToBuffer. See the docstring for CopyFromBuffer for details on the 1672currently allowed buffer formats. The existing wx.BitmapFromBuffer 1673factory functions are also now implemented using the same underlying 1674code as CopyFromBuffer. 1675 1676Add wx.lib.mixins.listctrl.ListRowHighlighter for automatic highlighting 1677of rows in a wx.ListCtrl. 1678 1679 1680 16812.8.8.1 1682------- 1683* 18-July-2008 1684 1685wx.richtext: Added wrappers for the RichTextPrinting and 1686RichTextPrintout classes. 1687 1688Make it easier to replace the check box images used in the 1689CheckListCtrlMixin class. 1690 1691Fixed bug in wx.ScrolledWindow when child focus events caused 1692unneccessary or incorrect scrolling. 1693 1694Fixed a bug in wx.GridBagSizer where hidden items were not ignored in 1695part of the layout algorithm. 1696 1697Several other bugs also fixed. 1698 1699 1700 1701 17022.8.8.0 1703------- 1704* 23-June-2008 1705 1706Added the PlateButton class from Cody Precord. 1707 1708Added wx.PyEvtHandler, which supports overriding the ProcessEvent 1709method in derived classes. Instances of this class can be pushed onto 1710the event handler chain of a window in order to hook into the event 1711processing algorithm, and its ProcessEvent method will be called for 1712every event sent to the window. 1713 1714With much help from Anthony Tuininga the code generated by the img2py 1715tool is now cleaner, simpler and smaller. Instead of writing the data 1716for the images as printable ascii with hex escapes it now uses base64 1717to encode the images into a string. In addition, instead of top-level 1718functions for returning the image data and bitmaps, the embedded 1719images now use a simple class with methods for returning the image as 1720a bitmap, icon, or etc. By default in 2.8.x top-level aliases will be 1721generated to make the code backward compatible with the old functional 1722interface, but you can use -F to turn that off. In 2.9 and beyond the 1723default will be to generate only the new class interface, but -f can 1724be used to turn the old behavior back on. 1725 1726The PyEmbeddedImage class added for the new img2py support can also be 1727used for image data that may be acquired from some other source at 1728runtime, such as over the network or from a database. In this case 1729pass False for isBase64 (unless the data actually is base64 encoded.) 1730Any image type that wx.ImageFromStream can handle should be okay. See 1731the wx.lib.embeddedimage module for details. 1732 1733Exposed the wx.GenericDatePickerCtrl to wxPython. On wxGTK and wxMac 1734this is exactly the same as the normal date picker, but on wxMSW it 1735allows you to avoid the native wx.DatePickerCtrl if so desired. Also 1736fixed a bug that caused an assert if you tried to set the date to 1737wx.DefaultDateTime even if wx.DP_ALLOWNONE was specified. 1738 1739Made a little hack in wx.lib.masked.TextCtrl that allows it to be 1740wrapped around an already existing TextCtrl instead of always creating 1741its own. This is useful for example with the wx.TextCtrl that is 1742built-in to the customizable wx.combo.ComboCtrl, or with a textctrl 1743that is part of an XRC layout. To use it you need to do a little 1744trick like this:: 1745 1746 existingTextCtrl = combo.GetTextCtrl() 1747 maskedCtrl = wx.lib.masked.TextCtrl.__new__(wx.lib.masked.TextCtrl) 1748 maskedCtrl.this = existingTextCtrl.this 1749 maskedCtrl.__init__(parent) 1750 1751Enhanced the Widget Inspection Tool with some new functionality. 1752Added tools to the toolbar to expand and collapse the widget tree, 1753which is very helpful for not getting lost in very large applications 1754with many hundreds of widgets. Also added a toolbar tool for 1755highlighting the currently selected widget or sizer in the live 1756application. The tool will flash top-level windows and for all other 1757items it will draw an outline around the item for a few seconds. 1758 1759Copied the sized_controls module to the wx.lib package as the first 1760step of phasing out the wxaddons package. 1761 1762Added an implementation of wx.Window.SetDoubleBuffered on Windows. 1763(GTK already has one, and Mac doesn't need one because everything is 1764always double buffered by the system there.) 1765 1766Added a wrapper to wx.TopLevelWindow for MacGetTopLevelWindowRef to 1767facilitate calling the Carbon APIs directly for things that are not 1768supported in wx, similar to how we can use ctypes or PyWin32 with 1769window.GetHandle() to do custom stuff on Windows. (On wxMac GetHandle 1770returns the ControlRef, which is different than the WindowRef, hence 1771the need for a 2nd method.) Here is an example to set the modified 1772flag in the caption:: 1773 1774 >>> import ctypes 1775 >>> carbon = ctypes.CDLL('/System/Library/Carbon.framework/Carbon') 1776 >>> carbon.SetWindowModified(frame.MacGetTopLevelWindowRef(), True) 1777 1778 1779Added a new light-weight solution for embedding ActiveX controls in 1780wxPython applications that uses ctypes and the comtypes package 1781available from http://starship.python.net/crew/theller/comtypes/. 1782Comtypes allows us to use and provide an interface with full dynamic 1783dispatch abilities, much like PyWin32's COM interfaces but with much 1784reduced external dependencies. See wx/lib/activex.py for more 1785details. IMPORTANT: Be sure to get at least version 0.5 of comtypes, 1786see the docstring in the wx.lib.activex module for details. 1787 1788The wx.lib.iewin, wx.lib.pdfwin, and wx.lib.flashwin modules were 1789switched to use the new and improved activex module. The APIs 1790provided by these modules should be mostly compatible with what was 1791there before, except for how the COM events are handled. Instead of 1792sending wx events it relies on you overriding methods with the same 1793names as the COM events. You can either do it in a or derived class, 1794or you can set an instance of some other class to be the event sink. 1795See the ActiveX_IEHtmlWindow sample in the demo for an example. If you 1796would rather continue to use the old version of these modules they 1797are available in the wx.lib with "_old" added to the names. 1798 1799Added the wx.lib.resizewidget module. This module provides the 1800ResizeWidget class, which reparents a given widget into a specialized 1801panel that provides a resize handle for the widget. When the user 1802drags the resize handle the widget is resized accordingly, and an 1803event is sent to notify parents that they should recalculate their 1804layout. 1805 1806 1807 1808 1809 18102.8.7.1 1811------- 1812* 29-Nov-2007 1813 1814Applied Patch [ 1783958 ] to use the native renderer for drawing the 1815checkboxes in CheckListCtrlMixin. 1816 1817Incorporated the new version of XRCed. This is the result of a Google 1818Summer of Code 2007 project by Roman Rolinsky, and includes a number 1819of UI enhancements, as well as a mechanism for adding support for new 1820components without needing changes to XRCed itself. These new 1821components can be those supported at the C++ layer of XRC, as well as 1822custom XRC handlers written in Python. See 1823http://wiki.wxpython.org/XRCed_Refactoring_Project 1824 1825wxMac: Fixed wx.BusyInfo so it doesn't steal the activated status 1826from the parent window. (This actually applies to all frames with the 1827wx.FRAME_TOOL_WINDOW style and no decorations.) 1828 1829wxMac: Fixed the lack of painting the area between scrollbars on 1830Leopard. 1831 1832wxMac: Fixed assertion errors dealing with toolbars on Leopard. 1833 1834wxMac: Multiline textcontrols now support attributes for margins and 1835alignement; only a single tab distance can be set though. 1836 1837Added the wx.Image.AdjustChannels method. This function muliplies all 18384 channels (red, green, blue, alpha) with a factor (around 18391.0). Useful for gamma correction, colour correction and to add a 1840certain amount of transparency to a image. 1841 1842Added Editra to the distribution, to give us a simple yet powerful 1843programmer's code editor to replace the never finished PyAlaMode 1844editor and related tools. Many thanks to Cody Precord for the work he 1845has done on this tool and for allowing us to make it part of wxPython. 1846Editra has syntax highlighting and other support for over 40 1847programming languages, excellent OS X integration, is extendable via 1848plugins, and for those that are on the VI side of the fence there is a 1849VI emulation mode. For more information see the Editra website at 1850http://editra.org/ 1851 1852wxGTK: wx.Frame.ShowFullScreen now preserves the menubar's 1853accelerators. 1854 1855wxGTK: wx.GetClientDisplayRect fixed. 1856 1857Applied patch [1838043], which adds a demo of the wx.RendererNative 1858class functionality. 1859 1860Applied patch [1837449], which uses wx.RenderNative for drawing the 1861combo button in the PopupControl. 1862 1863Added GetDirItemData to wx.GenericDirCtrl, which returns a reference 1864to the data object associated with an item in the control. (Patch 1865#1836326) 1866 1867 1868 1869 1870 18712.8.6.1 1872------- 1873* 26-Oct-2007 1874 1875wxMac: Fixed paste bug when the clipboard contains unicode text. 1876 1877AUI: Added missing event binders for the notebok tab events. 1878 1879wxMac: Fixed bug that resulted in portions of virtual listctrl's to 1880not be repainted when scrolling with PgUp/PgDown/Home/End. 1881 1882wxMac: Fixed bug that broke tab traversal when tabbing runs into a 1883wx.StaticBox. 1884 1885wxGTK: Add wx.Window.GetGtkWidget. 1886 1887All: Undprecated wx.ListCtrl.[G|S]etItemSpacing 1888 1889All: Fixed wx.Palette constructor wrapper. It takes three seqences of 1890integers to specify the R, G, and B values for each color in the 1891palette, which must all be the same length and which must contain 1892integer values in the range of 0..255 inclusive. 1893 1894Thanks to some grunt work from Edouard TISSERANT, wxPython now has the 1895needed tweaks in config.py to be able to be built with mingw32. See 1896BUILD.txt for details. 1897 1898Changes in wx.GraphicsContext to make things like the half-pixel 1899offsets more consistent across platforms. 1900 1901wxMSW: If freezing a top-level window wxWidgets will actually freeze 1902the TLW's children instead. This works around a feature of MS Windows 1903that allowed windows beneath the frozen one in Z-order to paint 1904through, and also mouse events clicking through to the lower window. 1905 1906 1907 1908 1909 19102.8.6.0 1911------- 1912* 27-Sept-2007 1913 1914This release is mostly about fixing a number of bugs and 1915inconsistencies in wxWidgets and wxPython. In other words, there have 1916been a whole lot more changes than what is listed here, but they are 1917not new features or API visible changes, which is what are usually 1918listed in this file. 1919 1920Some Menu APIs added to make things more consistent. Added 1921wx.MenuBar.SetMenuLabel, wx.MenuBar.GetMenuLabel, 1922wx.MenuBar.GetMenuLabelText, wx.Menu.GetLabelText, 1923wx.MenuItem.SetItemLabel, wx.MenuItem.GetItemLabel, 1924wx.MenuItem.GetItemLabelText, wx.MenuItem.GetLabelText. The 1925Get...Label functions get the raw label with mnemonics and 1926accelerators, and the Get...LabelText functions get the text only, 1927without mnemonics/accelerators. 1928 1929Added wx.BORDER_THEME style. This style will attempt to use a theme 1930specific style, if the current platform and environment is themeable 1931and has a specific theme style. For example, you could use this on 1932Windows XP on a custom control to give it a themed border style that 1933looks like what is used by default on the native wx.TextCtrl or 1934wx.ListBox. Since there were not any more available bits for border 1935styles, this style replaces wx.BORDER_DOUBLE. 1936 1937 1938 1939 1940 1941 19422.8.4.2 1943------- 1944* 8-Aug-2007 1945 1946Added some SWIG magic that allows wx C++ lists to be exposed to 1947wxPython as sequence-like wrappers around the real list, instead of 1948making a Python list that is a copy of the real list as was done 1949before. These sequence-like objects support indexing, iteration, 1950containment tests ("obj in seq") and index(obj), but not anything that 1951would modify the sequence. If you need to have a real list object 1952like before then you can pass the sequence to Python's list() function 1953to convert it. Current functions that are affected by this are 1954wx.Window.GetChildren, wx.GetTopLevelWindows, wx.Sizer.GetChildren, 1955and wx.Menu.GetMenuItems. Care should be taken to be sure that you 1956don't try to use the sequence after the C++ object the list belongs to 1957has been destroyed. 1958 1959Updated wrappers for the RichTextCtrl classes that were already 1960wrapped, and added support for loading rich xml files and saving as 1961HTML or XML. 1962 1963Added wxRoses sample from Ric Werme. 1964 1965Added better wrappers for wx.OutputStream and wxPython now deals with 1966them similarly to how it handles wx.InputStreams. Specifically, any 1967Python file-like object can be passed where a wx.OutputStream is 1968expected and the data will be written to the file object 1969appropriately. 1970 1971Added some patches from Billy B. that improve the pySketch sample. 1972 1973Added patch from Chris Mellon that gives PyShell a custom context 1974menu that is better integrated with the shell environment. 1975 1976There are now new build scripts for making the Universal binaries and 1977Installer for OS X. There is no longer any need for separate builds 1978for each OS version, all builds are now Universal and work on both 1979Panther and Tiger, and on PPC and i386. 1980 1981On the Linux side the debian and ubuntu packages will support multiple 1982versions of Python if the Debian/Ubuntu release is set up to support 1983more than one version. To check which versions you can expect to get 1984you can run "pyversions -s". Also there is a new package available 1985that contains a debug version of the wxPython extension modules, that 1986can be used with the python-dbg package. In addition the RPMs are now 1987being built for Fedora Core 6 and Fedora Core 7. 1988 1989 1990 1991 1992 19932.8.4.0 1994------- 1995* 14-May-2007 1996 1997wxGTK: Make wx.NO_BORDER style work with wx.RadioBox (patch 1525406) 1998 1999Update to 1.0 of TreeMixin. 2000 2001wx.lib.customtreectrl: Patch from Andrea that fixes the following 2002problems/issues: 2003 2004* ZeroDivisionError when using the Vista selection style and calling 2005 SelectItem; for some strange reason, sometimes the item rect is 2006 not initialized and that generates the ZeroDivisionError when 2007 painting the selection rectangle; 2008 2009* Added a DeleteWindow method to GenericTreeItem class, for items 2010 that hold a widget next to them; 2011 2012* Renamed CustomTreeCtrl method IsEnabled to IsItemEnabled, otherwise 2013 it conflicts with wx.Window.IsEnabled; 2014 2015* Now CustomTreeCtrl behaves correctly when the widget attached to an 2016 item is narrower (in height) than the item text; 2017 2018 2019wx.lib.flatnotebook: Patch from Andrea that implements the following: 2020 2021* A new style FNB_FF2: my intentions were to make it like Firefox 2, 2022 however it turned out to be an hybrid between wxAUI notebook glose 2023 style & FF2 ...I still think it looks OK. The main purpose for 2024 making it more like wxAUI is to allow applications that uses both 2025 to have same look and feel (or as close as it can get...); 2026 2027* Changed the behavior of the left/right rotation arrows to rotate 2028 single tab at a time and not bulk of tabs; 2029 2030* Updated the demo module. 2031 2032XRCed now uses a wx.FileHistory object for managing the recent files 2033menu. 2034 2035wx.DateSpan and wx.TimeSpan now use lower case property names in order 2036to not conflict with the same named static methods that already 2037existed. 2038 2039wx.aui.PyAuiDocArt and wx.aui.PyAuiTabArt can now be derived from in 2040wxPython and plugged in to wx.AUI. 2041 2042XRCed has a new experimental feature to add controls by draging icons 2043from the tool palette to the test window. Mouse position is tracked 2044to highlight the future parent of the new item. 2045 2046Updates to MaskedEdit controls from Will Sadkin: 2047 2048maskededit.py: 2049 Added parameter option stopFieldChangeIfInvalid, which can be used to 2050 relax the validation rules for a control, but make best efforts to stop 2051 navigation out of that field should its current value be invalid. Note: 2052 this does not prevent the value from remaining invalid if focus for the 2053 control is lost, via mousing etc. 2054 2055numctrl.py, demo / MaskedNumCtrl.py: 2056 In response to user request, added limitOnFieldChange feature, so that 2057 out-of-bounds values can be temporarily added to the control, but should 2058 navigation be attempted out of an invalid field, it will not navigate, 2059 and if focus is lost on a control so limited with an invalid value, it 2060 will change the value to the nearest bound. 2061 2062combobox.py: 2063 Added handler for EVT_COMBOBOX to address apparently inconsistent behavior 2064 of control when the dropdown control is used to do a selection. 2065 2066textctrl.py 2067 Added support for ChangeValue() function, similar to that of the base 2068 control, added in wxPython 2.7.1.1. 2069 2070Update to latest FloatCanvas from Chris Barker. 2071 2072The pywxrc tool now properly supports generating classes for menus and 2073menubars, and also creating attributes for menus, menubars and menu 2074items. 2075 2076 2077 2078 2079 20802.8.3.0 2081------- 2082* 22-March-2007 2083 2084Added wx.ToolBar.SetToolNormalBitmap and SetToolDisabledBitmap 2085methods. (Keep in mind however that the disabled bitmap is currently 2086generated on the fly by most native toolbar widgets, so this 2087SetToolDisabledBitmap method won't have any affect on them...) 2088 2089Refactored the inspection tool such that it can be used as a wx.App 2090mix-in class as it was used before (with the wx.lib.mixins.inspect 2091module) and also as a non mix-in tool (using wx.lib.inspect.InspectionTool). 2092 2093Add wx.lib.mixins.treemixin from Frank Niessink. 2094 2095Added the wx.SizerFlags class, and also added AddF, InsertF and 2096PrependF methods to wx.Sizer. The wxSizerFlags class provides a 2097convienient and easier to read way to add items to a sizer. It was 2098added as a new set of methods of the wx.Sizer class so as to not 2099disturb existing code. For example, instead of writing:: 2100 2101 sizer.Add(ctrl, 0, wx.EXPAND | wx.ALL, 10) 2102 2103you can now write:: 2104 2105 sizer.AddF(ctrl, wx.SizerFlags().Expand().Border(wx.ALL,10)) 2106 2107 2108Will Sadkin provided a patch for the wx.lib.masked package that fixes 2109its support for using the navigation keys on the numeric keypad. 2110 2111wx.lib.plot: patch #1663937 to allow user to turn off scientific 2112notation on plot. 2113 2114wxGTK: Most of the remaining TODOs for the wx.GraphicsContext on wxGTK 2115have been done. This includes implementations for GetTextExtent, 2116Clip, DrawBitmap, fixing the drawing position of text to be at the 2117upper left corner instead of the baseline, etc. 2118 2119wx.lib.customtreectrl patches from Andrea: 2120 21211. ExpandAll has been renamed as ExpandAllChildren, and the new 2122 ExpandAll now takes no input arguments (consistent with 2123 wx.TreeCtrl) 2124 21252. ctstyle keyword is now defaulted to 0: every style related to 2126 CustomTreeCtrl and the underlying wx.PyScrolledWindow should be 2127 declared using the keyword "style" only. For backward 2128 compatibility, ctstyle continues to work as I merged ctstyle and 2129 style in the __init__ method. 2130 21313. GetClassDefaultAttributes is now a classmethod. 2132 21334. UnselectAll bug fixed. 2134 2135 2136Renamed the wx.lib.inspect and wx.lib.mixins.inspect modules to 2137inspection, in order to avoid conflicts with the inspect module in the 2138standard Python library. 2139 2140Lots of changes to XRCed from Roman Rolinsky: 2141 2142* Preferences for default "sizeritem" parameters for new panels and 2143 controls can be configured ("File">"Preferences..."). 2144 2145* Implemented comment object for including simple one-line comments and 2146 comment directives as tree nodes. No validation is performed for a 2147 valid XML string so comments must not contain "-->". Comment directive 2148 is a special comment starting with '%' character, followed by a line 2149 of python code. It is executed using 'exec' when the resource file is 2150 opened. This is useful to import plugin modules containing custom 2151 handlers which are specific to the resource file, hovewer this is of 2152 course a security hole if you use foreign XRC files. A warning is 2153 displayed if the preference option 'ask' is selected (by default). 2154 2155* Added support for custom controls and plugin modules. Refer to this 2156 wxPythonWiki for the details: http://wiki.wxpython.org/index.cgi/XRCed#custom 2157 2158* Tool panel sections can be collapsed/expanded by clicking on the 2159 label of a tool group. 2160 2161* Some undo/redo and other fixes. 2162 2163* Fixes for wxMSW (notebook highlighting, control sizes, tree Unselect). 2164 2165* Notebook page highlighting fix. Highlight resizes when the window 2166 is resized. ParamUnit spin button detects event handler re-entry 2167 (wxGTK probably has a bug in wxSpinButton with repeated events). 2168 2169* Fix for dealing with empty 'growable' property, using MiniFrame 2170 for properties panel, the panel is restored together with the 2171 main window. 2172 2173 2174 2175 2176 21772.8.1.1 2178------- 2179* 19-Jan-2007 2180 2181wxMSW: Fix lack of spin control update event when control lost focus 2182 2183Added a typeId property to the PyEventBinder class that holds the 2184eventType ID used for that event. So when you need the eventType 2185(such as when sending your own instance of standard events) you can 2186use, for example, wx.EVT_BUTTON.typeId instead of 2187wx.wxEVT_COMMAND_BUTTON_CLICKED. Note that there are a few composite 2188events, such as EVT_MOUSE and EVT_SCROLL, that will actually bind 2189multiple event types at once, and in these cases the typeId property 2190may not give you what you want. You should use te component events in 2191these cases. 2192 2193PyCrust now has an option for showing/hiding the notebook. 2194 2195wxMSW: Corrected drawing of bitmaps for disabled menu items. 2196 2197Enhanced the wx.lib.mixins.inspect module. In addition to showing a 2198PyCrust window it is now a widget browser, which provides a tree 2199loaded up with all the widgets in the app, optionally with the sizers 2200too, and also a panel displaying the properties of the selected 2201window. Run the demo and type Ctrl-Alt-I keystroke (or Cmd-Alt-I on 2202the Mac) to see how it works. You can add this to your own apps with 2203just a few lines of code. 2204 2205Added wx.SearchCtrl.[Get|Set]DescriptiveText 2206 2207wxMac: Added support for the wx.FRAME_FLOAT_ON_PARENT style. 2208 2209wxMac: the popups used for call tips and autocomplete lists in 2210StyledTextCtrl (such as in PyShell) are now top-level float-on-parent 2211windows so they are no longer clipped by the bounds of the stc window. 2212 2213 2214 2215 2216 22172.8.1.0 2218------- 2219* 8-Jan-2007 2220 2221Added EVT_TASKBAR_CLICK and use it to show taskbar icon menu on right 2222button release, not press, under MSW (bug 1623761) 2223 2224Added wx.TreeCtrl.CollapseAll[Children]() and IsEmpty() methods 2225 2226Fix wx.MDIChidFrame.GetPosition() (patch 1626610) 2227 2228Fix attribute memory leak in wx.grid.Grid::ShowCellEditControl() (patch 22291629949) 2230 2231wxGTK: Fix for controls on a toolbar being the full height of the 2232toolbar instead of their natural height. 2233 2234wx.lib.customtreectrl patches from Andrea Gavana. 2235 2236wxMac: Applied patch #1622389, fixing two memory leaks in 2237GetPartialTextExtents. 2238 2239More fixes for the native wx.ListCtrl on Mac. 2240 2241Added wx.aui.AuiNotebook.GetAuiManager(). 2242 2243Added wx.aui.AuiMDIParentFrame and wx.aui.AuiMDIChildFrame, which 2244essentially implement the MDI interface using a normal wx.Frame and a 2245wx.aui.AuiNotebook. 2246 2247 2248 2249 22502.8.0.1 2251------- 2252* 11-Dec-2006 2253 2254Lots of fixes and updates to the AUI classes. 2255 2256Added wx.CollapsiblePane. On wxGTK it uses a native expander widget, 2257on the other platforms a regular button is used to control the 2258collapsed/expanded state. 2259 2260Added the wx.combo module, which contains the ComboCtrl and ComboPopup 2261classes. These classes allow you to implement a wx.ComboBox-like 2262widget where the popup can be nearly any kind of widget, and where you 2263have a lot of control over other aspects of the combo widget as well. 2264It works very well on GTK and MSW, using native renderers for drawing 2265the combo button, but is unfortunatly still a bit klunky on OSX... 2266 2267Use system default paper size for printing instead of A4 by default. 2268 2269Added wx.combo.OwnerDrawnComboBox, which is a ComboCtrl that delegates 2270the drawing of the items in the popup and in the control itself to 2271overridden methods of a derived class, similarly to how wx.VListBox 2272works. 2273 2274Added wx.combo.BitmapComboBox which is a combobox that displays a 2275bitmap in front of the list items. 2276 2277Added the wx.lib.mixins.inspect module. It contains the InspectMixin 2278class which can be mixed with a wx.App class and provides a PyCrust 2279window that can be activated with a Ctrl-Alt-I keystroke (or Cmd-Alt-I 2280on the Mac.) 2281 2282Added some modules from Riaan Booysen: 2283 2284* wx.lib.flagart: contains icons of the flags of many countries. 2285 2286* wx.lib.art.img2pyartprov: makes images embedded in a python file 2287 with img2py available via the wx.ArtProvider. 2288 2289* wx.lib.langlistctrl: A wx.ListCtrl for selecting a language, 2290 which uses the country flag icons. 2291 2292* An I18N sample for the demo. 2293 2294wx.lib.masked: Patch from Will Sadkin. Includes Unicode fixes, plus 2295more helpful exceptions and ability to designate fields in mask 2296without intervening fixed characters. 2297 2298Added wx.SearchCtrl, which is a composite of a wx.TextCtrl with optional 2299bitmap buttons and a drop-down menu. Controls like this can typically 2300be found on a toolbar of applications that support some form of search 2301functionality. On the Mac this control is implemented using the 2302native HISearchField control, on the other platforms a generic control 2303is used, although that may change in the future as more platforms 2304introduce native search widgets. 2305 2306Added a set of button classes to wx.lib.buttons from David Hughes that 2307uses the native renderer to draw the button. 2308 2309 2310 2311 23122.7.2.0 2313------- 2314* 7-Nov-2006 2315 2316Patch [ 1583183 ] Fixes printing/print preview inconsistencies 2317 2318Add events API to wxHtmlWindow (patch #1504493 by Francesco Montorsi) 2319 2320Added wxTB_RIGHT style for right-aligned toolbars (Igor Korot) 2321 2322Added New Zealand NZST and NZDT timezone support to wx.DateTime. 2323 2324wx.Window.GetAdjustedBestSize is deprecated. In every conceivable 2325scenario GetEffectiveMinSize is probably what you want to use instead. 2326 2327wx.Image: Gained support for TGA image file format. 2328 2329wx.aui: The classes in the wx.aui module have been renamed to be more 2330consistent with each other, and make it easier to recognize in the 2331docs and etc. that they belong together. 2332 2333====================== ================= 2334FrameManager --> AuiManager 2335FrameManagerEvent --> AuiManagerEvent 2336PaneInfo --> AuiPaneInfo 2337FloatingPane --> AuiFloatingPane 2338DockArt --> AuiDockArt 2339TabArt --> AuiTabArt 2340AuiMultiNotebook --> AuiNotebook 2341AuiNotebookEvent --> AuiNotebookEvent 2342====================== ================= 2343 2344wx.lib.customtreectrl: A patch from Frank Niessink which adds an 2345additional style (TR_AUTO_CHECK_PARENT) that (un)checks a parent when 2346all children are (un)checked. 2347 2348wx.animate.AnimationCtrl fixed to display inactive bitmap at start 2349(patch 1590192) 2350 2351Patch from Dj Gilcrease adding the FNB_HIDE_ON_SINGLE_TAB style flag 2352for wx.lib.flatnotebook. 2353 2354wx.Window.GetBestFittingSize has been renamed to GetEffectiveMinSize. 2355SetBestFittingSize has been renamed to SetInitialSize, since it is 2356most often used only to set the initial (and minimal) size of a 2357widget. 2358 2359The QuickTime backend for wx.media.MediaCtrl on MS Windows works 2360again. Just pass szBackend=wx.media.MEDIABACKEND_QUICKTIME to the 2361constructor to use it instead of the default ActiveMovie backend, 2362(assuming the quicktime DLLs are available on the system.) 2363 2364 2365 2366 2367 2368 23692.7.1.3 2370------- 2371* 26-Oct-2006 2372 2373wxGTK: The wx.ALWAYS_SHOW_SB style is now supported. 2374 2375Fixed name errors in the old wxPython package namespace. As a 2376reminder, use of this package is deprecated and you are encouraged to 2377switch your programs over to the wx package. 2378 2379Fixed wx.glcanvas.GLCanvas.SetCurrent to be compatible with prevoius 2380versons. 2381 2382Added wx.StandardPaths.GetTmpDir. 2383 2384Bug fixes in the wx.ListCtrl on Mac from Kevin Olivier, allowing it to 2385send events properly again. There is also a new native implementation 2386of wx.ListCtrl available, which will be used for wx.LC_REPORT style 2387list controls if you set the "mac.listctrl.always_use_generic" 2388SystemOption to zero. In a future release this will be the default. 2389 2390Added a sample to the demo that shows some of what can be done with 2391the new wx.GraphicsContext and wx.GraphicsPath classes. 2392 2393 2394 2395 23962.7.1.2 2397------- 2398* 21-Oct-2006 2399 2400Fixed a bug in the MaskedEdit controls caused by conflicting IsEmpty 2401methods. 2402 2403Patch #1579280: Some mimetype optimizations on unix-like systems. 2404 2405wxMac: Several wx.webkit.WebKitCtrl enhancements/fixes, including: 2406 2407- new methods for increasing/decreasing text size, getting 2408 selection, getting/setting scroll position, printing, enabling 2409 editing, and running JavaScripts on the page. 2410 2411- added new event (wx.webkit.WebKitBeforeLoadEvent) for catching, and 2412 possibly vetoing, load events before they occur. 2413 2414- wx.webkit.WebKitCtrl now fires mouse events for certain events 2415 that it was eating before. This improves wxSplitterWindow 2416 resizing behavior. 2417 2418- refactoring of the sizing logic to move the Cocoa view. Tested 2419 with splitter windows, panels, notebooks and all position 2420 correctly with this. 2421 2422Some improvements to the drawing code in CustomTreeCtrl. 2423 2424Fixed refcount leak in wx.Window.GetChildren. 2425 2426 2427 2428 2429 24302.7.1.1 2431------- 2432* 18-Oct-2006 2433 2434The following deprecated items have been removed: 2435 2436* wx.Bitmap SetQuality and GetQuality methods 2437 2438* The wx.GetNumberFromUser function 2439 2440* wx.EVT_LIST_GET_INFO and wx.EVT_LIST_SET_INFO 2441 2442* wx.BookCtrlSizer and wx.NotebookSizer 2443 2444* The PostScript-specific methods of wx.PrintData 2445 2446* wx.PrintDialogData SetSetupDialog and GetSetupDialog methods 2447 2448* wx.FontMapper SetConfig method 2449 2450* wx.html.HtmlSearchStatus.GetContentsItem method 2451 2452* wx.html.HtmlHelpData.GetContents, GetContentsCnt, GetIndex, and 2453 GetIndexCnt methods 2454 2455 2456wx.EventLoop is now implemented for wxMac. 2457 2458Added wxPython wrappers for the new wx.Treebook and wx.Toolbook 2459classes. 2460 2461wx.DC.BeginDrawing and EndDrawing have been deprecated in the C++ 2462code, so since they never really did anything before they are now just 2463empty stubs in wxPython. 2464 2465Solved a problem that has been around for a very long time in how C++ 2466methods are virtualized for overriding in derived Python classes. 2467Previously we couldn't do it for methods that needed to also exist in 2468the base class wrappers such that they could be called normally. (The 2469reasons are long and complex, but suffice it to say that it was due to 2470mixing C++'s dynamic dispatch, and Python's runtime lookup of the 2471method attributes resulting in endless recursion of function calls.) 2472Because of this problem I used a hack that I have always hated, and 2473that is renaming the base class methods with a "base_*" prefix, for 2474example wx.Printout.base_OnBeginDocument. Now that the problem has 2475finally been solved I have replaced all the base_Whatever() methods 2476with the real Whatever() method as well as a simple wrapper named 2477base_Whatever that is marked as deprecated. So now instead of writing 2478your overridden methods like this:: 2479 2480 def OnBeginDocument(self, start, end): 2481 # do something here 2482 return self.base_OnBeginDocument(start, end) 2483 2484You can now call the base class method the normal way, like this:: 2485 2486 def OnBeginDocument(self, start, end): 2487 # do something here 2488 return Printout.OnBeginDocument(self, start, end) 2489 2490Or like this with super():: 2491 2492 def OnBeginDocument(self, start, end): 2493 # do something here 2494 return super(MyPrintout, self).OnBeginDocument(start, end) 2495 2496Note that the old way with the "base_*" function still works, but you 2497will get a DeprecationWarning from calling base_OnBeginDocument. The 2498classes affected by this are: 2499 2500* wx.DropSource 2501* wx.DropTarget 2502* wx.TextDropTarget 2503* wx.FileDropTarget 2504* wx.PyLog (also added the ability to override Flush) 2505* wx.PyApp (also added the ability to override ExitMainLoop) 2506* wx.Printout 2507* wx.PyPrintPreview 2508* wx.PyPreviewFrame 2509* wx.PreviewControlBar 2510* wx.Process 2511* wx.PyControl 2512* wx.PyPanel 2513* wx.PyScrolledWindow 2514* wx.PyWindow 2515* wx.Timer 2516* wx.grid.PyGridCellRenderer 2517* wx.grid.PyGridCellEditor 2518* wx.grid.PyGridCellAttrProvider 2519* wx.grid.PyGridTableBase 2520* wx.html.HtmlWindow 2521* wx.wizard.PyWizardPage 2522 2523 2524Added the wx.DC.GradientFillConcentric and wx.DC.GradientFillLinear 2525methods. 2526 2527wxGTK: wx.ListBox and wx.CheckListBox are now using native GTK2 2528widgets. 2529 2530Added wx.ListBox.HitTest() from patch 1446207 2531 2532Bumped up to SWIG 1.3.29. This provides some more runtime performance 2533boosts, gets rid of the dreaded Ptr classes, and some other nice new 2534things. 2535 2536Added wx.Window.GetScreenPosition and GetScreenRect which returns the 2537position of the window in screen coordinates, even if the window is 2538not a top-level window. 2539 2540Added GetResourcesDir and GetLocalizedResourcesDir to 2541wx.StandardPaths. 2542 2543Added a GetReceivedFormat method to wx.DataObjectComposite. You can 2544use this to find out what format of data object was recieved from the 2545source of the clipboard or DnD operation, and then you'll know which 2546of the component data objects to use to access the data. 2547 2548Changed how the stock objects (wx.RED, wx.RED_PEN, wx.RED_BRUSH, etc.) 2549are initialized. They are now created as uninitialized instances 2550using __new__. Then after the wx.App has been created, but before 2551OnInit is called, the .this attribute of each object is initialized. 2552This was needed because of some delayed initialization functionality 2553that was implemented in wxWidgets, but the end result is cleaner for 2554wxPython as well, and allowed me to remove some ugly code previously 2555hidden under the covers. 2556 2557Added wx.StandardPaths.GetDocumentsDir. 2558 2559Added wx.RendererNative.DrawCheckButton. 2560 2561wx.ProgressDialog.Update now returns a tuple of two values. The first 2562is a continue flag (what was returned before) and the second is a skip 2563flag. If the dialog has the wx.PD_CAN_SKIP flag and if the Skip 2564button is clicked, then the skip flag is set to True the next time 2565Update is called. 2566 2567A DeprecationWarning is now issued when the old wxPython package is 2568imported. If you are still using the old namespace please convert 2569your code to use the new wx package instead. 2570 2571Added wrappers for Julian's new wxRichTextCtrl class, visible in 2572wxPython as wx.richtext.RichTextCtrl window. It still needs some more 2573work, but it is a great start. 2574 2575wx.lib.mixins.listctrl.TextEditMixin: Fixed the double END_LABEL_EDIT 2576event problem in TextEditMixin by checking if the editor was already 2577hidden before continuing with the CloseEditor method. Also added code 2578to OpenEditor to send the BEGIN_LABEL_EDIT event and to not allow the 2579opening of the editor to continue if the event handler doesn't allow 2580it. 2581 2582wx.StaticBoxSizer now keeps better track of the wx.StaticBox, and it 2583will destroy it if the sizer is destroyed before the parent window is. 2584 2585Added wx.HyperlinkCtrl. 2586 2587Added battery and power related functions and events (wxMSW only so 2588far.) See wx.PowerEvent, wx.GetPowerType and wx.GetBatteryState. 2589 2590Added wx.ListCtrl.HitTestSubItem which returns the sub-item (i.e. the 2591column in report mode) that was hit (if any) in addition to the item 2592and flags. 2593 2594Added wrappers for wx.ColourPickerCtrl, wx.DirPickerCtrl, 2595wx.FilePickerCtrl, and wx.FontPickerCtrl. 2596 2597Patch #1502016 wx.Image.ConvertToGreyscale now retains the alpha 2598channel. 2599 2600Added wrappers for the wxAUI classes, in the wx.aui module. 2601 2602Added the PseudoDC class from Paul Lanier. It provides a way to 2603record operations on a DC and then play them back later. 2604 2605Upgraded to Scintilla 1.70 for wx.stc.StyledTextCtrl. 2606 2607Added CanSetTransparent and SetTransparent methods to the 2608wx.TopLevelWindow class, with implementations (so far) for wxMSW and 2609wxMac. 2610 2611SetDefaultItem() and GetDefaultItem() are now members of 2612wx.TopLevelWindow, not wx.Panel. 2613 2614wxGTK: Stock items (icons) will be used for menu items with stock 2615IDs. 2616 2617Added wx.lib.combotreebox from Frank Niessink 2618 2619Added wx.ImageFromBuffer, wx.BitmapFromBuffer and 2620wx.BitmapFromBufferRGBA factory functions. They enable loading of an 2621image or bitmap directly from a Python object that implements the 2622buffer interface, such as strings, arrays, etc. 2623 2624Added wx.App.IsDisplayAvailable() which can be used to determine if a 2625GUI can be created in the current environment. (Still need an 2626implementation for wxMSW...) 2627 2628The wx.html.HTML_FONT_SIZE_x constants are no longer available as the 2629default sizes are now calculated at runtime based on the size of the 2630normal GUI font. 2631 2632wx.Colour now includes an alpha component, which defaults to 2633wx.ALPHA_OPAQUE. This is in preparation for allowing various new 2634alpha blening functionality using wx.Colour objects, such as drawing 2635with pens and brushes on a wx.DC. 2636 2637Added wx.NativePixelBuffer, wx.AlphPixelBuffer and related iterator 2638and accessor classes. They allow platform independent direct access 2639to the platform specific pixel buffer inside of a wx.Bitmap object. 2640 2641The beginnings of support for RTL languages has been added, thanks to 2642a Google SoC project. 2643 2644Added wx.lib.dragscroller from Riaan Booysen. It provides a helper 2645class that can used to scroll a wx.ScrolledWindow in response to a 2646mouse drag. 2647 2648Applied patch 1551409: Adds support for indeterminate mode gauges. 2649 2650wxMac: I've turned on the compile option for using the native toolbar 2651on the Mac now that it supports hosting of controls. If the toolbar 2652is managed by the frame via either CreateToolBar() or SetToolBar() 2653then the native toolbar will be used. Additional toolbars, or 2654toolbars that are not children of the frame, are managed by sizers or 2655what-not will still use the emulated toolbar because of platform 2656restrictions in how/where the native toolbar can be used. 2657 2658Added Python properties for many of the getter/setter methods of wx 2659classes. In order for the names to be predicatble for somebody 2660already familiar with wxPython the property names are simply the name 2661of the getter with the "Get" dropped. For example, wx.Window has a 2662property named "Size" that maps to GetSize and SetSize. So far there 2663is only one known name conflict using this naming convention, and that 2664is wx.KeyEvent.KeyCode, however since KeyCode was formerly a 2665compatibility alias for GetKeyCode (and has been for a long time) it 2666was decided to just switch it to a property. If you want to use the 2667method then change your calls to event.KeyCode() to 2668event.GetKeyCode(), otherwise you can use it as a property just by 2669dropping the parentheses. 2670 2671Updated the C++ code for wx.gizmos.TreeListCtrl from the wxCode 2672project. This has resulted in some minor API changes, most of which 2673were worked around in the wrapper code. 2674 2675Added wx.lib.delayedresult from Oliver Schoenborn. 2676 2677Added wx.lib.expando, a multi-line textctrl that expands as more lines 2678are needed. 2679 2680wx.Image.Scale and Rescale methods now take an extra parameter 2681specifying type of method to use for resampling the image. It 2682defaults to the current behavior of just replicating pixels, if 2683wx.IMAGE_QUALITY_HIGH is passed then it uses bicubic and box averaging 2684resampling methods for upsampling and downsampling respectively. 2685 2686Added the wx.lib.buttonpanel module, which is a tweaked version of 2687Andrea Gavana's FancyButtonPanel module. 2688 2689Added the wx.lib.flatnotebook module, from Andrea Gavana. 2690 2691Renamed wx.FutureCall to wx.CallLater so it is named more like 2692wx.CallAfter. wx.FutureCall is now an empty subclass of wx.CallLater 2693for compatibility of older code. 2694 2695Added the wx.lib.customtreectrl module from Andrea Gavana. 2696 2697Added ChangeSelection to wx.BookCtrl (the base class for wx.Notebook 2698and other book controls) that is the same as SetSelection but doesn't 2699send the change events. 2700 2701Added wx.TextCtrl.ChangeValue() which is the same as SetValue() but 2702doesn't send the text changed event. 2703 2704For consistency, all classes having an Ok() method now also have 2705IsOk(), use of the latter form is preferred although the former hasn't 2706been deprecated yet 2707 2708Added the wx.AboutBox() function and wx.AboutDialogInfo class. They 2709provide a way to show a standard About box for the application, which 2710will either be a native dialog or a generic one depending on what info 2711is provided and if it can all be shown with the native dialog. 2712 2713The code in the animate contrib has been moved into the core wxWidgets 2714library, and refactored a bit along the way. For wxPython it still 2715exists in the wx.animate module, but has basically been reduced to two 2716classes, wx.animate.Animation, and wx.animate.AnimationCtrl. You load 2717the animated GIF (and hopefully there will be other supported formats 2718in the near future) in the Animation object, and then give that to the 2719AnimatedCtrl for display. See the demo for an example. There is also 2720still a GIFAnimationCtrl class that provides some level of backwards 2721compatibility with the old implementation. 2722 2723wxMac: The compile option that turns on the use of CoreGraphics (a.k.a 2724Quartz) for wxDC is now turned on by default. This means that all 2725drawing via wxDC is done using the new APIs from apple, instead of the 2726old Quick Draw API. There are, however, a few places where Quartz and 2727wxDC don't fit together very well, mainly the lack of support for 2728logical drawing operations such as XOR, but there is work in progress 2729to provide other ways to do the same sort of thing that will work with 2730Quartz and also on the other platforms. 2731 2732The first parts of a new 2D drawing API has been added with the 2733wx.GraphicsPath and wx.GraphicsContext classes. They wrap GDI+ on 2734Windows, Cairo on wxGTK and CoreGraphics on OS X. They allow path-based 2735drawing with alpha-blending and anti-aliasing, and use a floating 2736point cooridnate system. Currently they can only target drawing to 2737windows, but other wx.DC backends are forthcoming. The APIs may 2738evolve a bit more before they are finalaized with the 2.8 release, but 2739there is enough there now to get a good feel for how things will work. 2740There is also a transitional wx.GCDC class that provides the wx.DC API 2741on top of wx.GraphicsContext. Docs and a demo are still MIA. 2742 2743Added a wx.AutoBufferedPaintDC that is a subclass of wx.PaintDC on 2744platforms that do double buffering by default, and a subclass of 2745wx.BufferedPaintDC on the platforms that don't. You can use this 2746class to help avoid the overhead of buffering when it is not 2747needed. There is also a wx.AutoBufferedPaintDCFactory function that 2748does a little more and actually tests if the window has 2749double-buffering enabled and then decides whether to return a 2750wx.PaintDC or wx.BufferedPaintDC. This uses the new 2751wx.Window.IsDoubleBuffered method. 2752 2753 2754 2755 2756 2757 2758 27592.6.3.3 2760------- 2761* 15-July-2006 2762 2763wx.lib.pubsub updates from Oliver Schoenborn: 2764 - fixed the hash problem with non-hashable objects 2765 - now supports listeners that use \*args as an argument 2766 (listener(\*args) was not passing the validity test) 2767 - corrected some mistakes in documentation 2768 - added some clarifications (hopefully useful for first time 2769 users) 2770 - changed the way singleton is implemented since old way prevented 2771 pydoc etc from extracting docs for Publisher 2772 2773DocView and ActiveGrid IDE updates from Morgan Hua: 2774 New Features: In Tab-View mode, Ctrl-number will take the user to 2775 the numbered tab view. Modified files now show an '*' astrisk in 2776 the view title. Debugger framework can now support PHP debugging. 2777 Not important for python development, but at least that means the 2778 debugger framework is more generalized. 2779 2780wx.lib.mixins.listctrl.TextEditMixin: Fixed the double END_LABEL_EDIT 2781event problem in TextEditMixin by checking if the editor was already 2782hidden before continuing with the CloseEditor method. Also added code 2783to OpenEditor to send the BEGIN_LABEL_EDIT event and to not allow the 2784opening of the editor to continue if the event handler doesn't allow 2785it. 2786 2787Undeprecated wx.GetNumberFromUser and added wx.NumberEntryDialog. 2788 2789Made necessaary changes for building wxPython for Python 2.5. There 2790may still be some issues related to the new Py_ssize_t type and 64-bit 2791machines, but at least all compile errors and warnings related to it 2792have been resolved. 2793 2794 2795 2796 27972.6.3.2 2798------- 2799* 3-April-2006 2800 2801Fixed reference leak in wx.gizmos.TreeListCtrl.GetSelections. 2802 2803wxMSW: Fixed sizing issue with wx.Choice and wx.ComboBox. This change 2804was implemented by reverting a prior fix for a different problem 2805(contiuous painting/resizing when a combobox is used as a widget in a 2806wx.html.HtmlWindow) so a method to fix both problems is still being 2807investigated. 2808 2809wxGTK: Fixed potential buffer overrun when pasting from the 2810clipboard. 2811 2812Fixed problem in wx.lib.splitter when used on 64-bit platforms. Used 2813the current length of the list for specifying an append instead of 2814sys.maxint. 2815 2816wxMSW: Support added for XP themed owner drawn buttons and bitmap 2817buttons. For example, if you change the foreground color of a button 2818it will now be drawn with the XP themed style rather than an ugly 2819generic button style. 2820 2821XRCed: Fix for Copy/Paste objects with international characters. 2822 2823Fixed the equality and inequality operators for some of the basic 2824data types (wx.Point, wx.Size, wx.Colour, etc.) to no longer raise a 2825TypeError if the compared object is not compatible, but to just return 2826a boolean as expected. For example:: 2827 2828 wx.Colour(64,0,64) == 123 ==> False 2829 2830wxMSW: Fixed (again) sizing/positioning issues of calling Realize on 2831a wx.ToolBar that is not manaaged directly by a frame and that is 2832already shown. 2833 2834wxMSW: Fixed wx.Choice/wx.ComboBox so they send events when a new item 2835is selected only with the keyboard. 2836 2837 2838 28392.6.3.0 2840------- 2841* 27-March-2006 2842 2843Change the wx.ListCtrl InsertStringItem wrapper to use the form that 2844takes an imageIndex, and set the default to -1. This ensures that on 2845wxMSW that if there is an image list but they don't specify an image, 2846the native control doesn't use one anyway. 2847 2848wxMSW: wx.ListCtrl in report mode is now able to support images in 2849other columns besides the first one. Simply pass an image index to 2850SetStringItem. For virtual list controls you can specify the image to 2851use on the extra columns by overriding OnGetItemColumnImage in your 2852derived class. It is passed the item number and the column number as 2853parameters, and the default version simply calls OnGetItemImage for 2854column zero, or returns -1 for other columns. 2855 2856Switched to using SWIG 1.3.27 for generating the wrapper code. There 2857are some small changes needed to SWIG to work around some bugs that 2858wxPython exposes, and to be able to generate code that matches that 2859which wxPython is using. If you are building wxPython yourself and 2860need to modify any of the \*.i files or to add your own, then you will 2861want to be sure to use a matching SWIG. See wxPython/SWIG/README.txt 2862in the source tarball for details. 2863 2864wx.Image.Copy, Mirror, and GetSubImage now also do the right thing 2865with the alpha channel. 2866 2867wxMSW: Fixed problem in wx.TextCtrl where using SetValue and 2868wx.TE_RICH2 would cause the control to be shown if it was hidden. 2869 2870wxMSW: Numpad special keys are now distinguished from normal keys in 2871key events. 2872 2873wxMSW: Multiline notebook tab label change now resizes the control 2874correctly if an extra row is removed or added. 2875 2876wxMSW: On XP fall back to unthemed wxNotebook if specified orientation 2877not available in the themed version. 2878 2879Added wx.Toolbar.GetToolsCount. 2880 2881Added wx.GridSizer.CalcRowsCols. 2882 2883Added wx.OutputStream.LastWrite. 2884 2885wxGTK: EVT_SET_CURSOR is now sent. 2886 2887wxGTK: Fix RequestMore for idle events. 2888 2889wxGTK: Implement user dashes for PS and GNOME printing. 2890 2891wxGTK: Correct update region code. Don't always invalidate the whole 2892window upon resize. Reenable support for thewx.NO_FULL_REPAINT_ON_RESIZE 2893flag. Also disable refreshing custom controls when focusing in and out. 2894 2895wx.lib.pubsub: Publisher is now able to parse a dotted notation string 2896into a topic tuple. For example: subscribing to "timer.clock.seconds" 2897is the same as subscribing to ("timer", "clock", "seconds"). 2898 2899Applied patch #1441370: lib.plot - allow passing in wx.Colour() 2900 2901Added wx.CommandEvent.GetClientData. 2902 2903Updated wxStyledTextCtrl to use version 1.67 of Scintilla. 2904NOTE: The STC_LEX_ASP and STC_LEX_PHP lexers have been deprecated, 2905you should use STC_LEX_HTML instead. 2906 2907wxSTC: Implemented Fix for SF Bug #1436503. Delay the start of the 2908DnD operation in case the user just intended to click, not drag. 2909 2910Updated the analogclock.py module to the new analogclock package from 2911E. A. Tacao. 2912 2913Added the wx.lib.mixins.listctrl.CheckListCtrlMixin class from Bruce 2914Who, which makes it easy to put checkboxes on list control items. 2915 2916Applied a patch from Christian Kristukat to wx.lib.plot that adds 2917scrollbars when the plot is zoomed in, and also the ability to grab a 2918zoomed plot and move it around with a mouse drag. 2919 2920XRCed updated to allow wxMenuBar to be created inside a wxFrame. 2921 2922Added wx.StandardPaths.GetDocumentsDir() (patch 1214360) 2923 2924 2925 2926 2927 2928 29292.6.2.1 2930------- 2931* 10-Jan-2006 2932 2933wxMSW: Fix for bug #1211907, popup menu indenting inconsistent with 2934bitmaps. 2935 2936wxMac: Don't send an event for wx.RadioButton deselections, just the 2937selections. This was done to make it consistent with the other 2938platforms. 2939 2940wxMSW: Always set flat toolbar style, even under XP with themes: this 2941is necessary or separators aren't shown at all. 2942 2943Fixes for bug #1217872, pydocview.DocService not correctly initialized. 2944 2945Fix for bug #1217874, Error in parameter name in DocManager.CreateView. 2946 2947Added wrappers for the wx.RendererNative class. 2948 2949Added the wx.lib.splitter module, which contains the 2950MultiSplitterWindow class. This class is much like the standard 2951wx.SplitterWindow class, except it allows more than one split, so it 2952can manage more than two child windows. 2953 2954Docview and IDE patch from Morgan Hua with fix for bug #1217890 2955"Closing view crashes Python" plus some new features: 2956 2957 New feature added to the IDE is 'Extensions'. Under 2958 Tools|Options|Extensions, you can add calls to external programs. 2959 For example you can add a "Notepad" extension (under windows) that 2960 will exec Notepad on the currently open file. A new "Notepad" 2961 menu item will appear under the Tools menu. 2962 2963Some fixes to XRCed to make encoding errors a bit more user friendly. 2964 2965XRCed changes from Roman Rolinsky: 2966 2967* Added new controls (Choicebook, Listbook, StatusBar, 2968 DatePicker), and completed style flags. Test window is opened 2969 for an available parent control if no specific view 2970 defined. Better handling of exceptions (highlighting does not 2971 'stick' anymore). 2972 2973* Use system clipboard for Copy/Paste. 2974 2975* Improved some dialogs (window styles, growable cols). Changed 2976 the range for wxSpinCtrl min/max to all integers (default 0/100 2977 is not always good). 2978 2979Updates for wx.lib.foldpanelbar and wx.lib.hyperlink from Andrea 2980Gavana. 2981 2982Fix for Bug #1283496: wxPython TheClipboard class causes problems for 2983pychecker. Ensure the app has been created before initializing 2984wx.TheClipboard. 2985 2986Fix for Bug #1352602: FileBrowseButtonWithHistory can't type in Value. 2987 2988wxHTML: Added space after list item number. 2989 2990wx.lib.printout: Applied patch #1384440. 2991 2992wxMSW: Fix for Bug #1293225 Window_FromHWND crashes if parent is 2993None. 2994 2995Fix for Bug #1261669, use a wx.TE_RICH2 style for the Process demo so 2996it doesn't fill up too soon. 2997 2998Applied Patch #1354389: wxPython MenuItem SetBitmaps fix. 2999 3000Applied Patch #1239456: wxPython wx.DataObject.GetAllFormats fix. 3001 3002Applied Patch # #1230107 which allows image handlers to be written in 3003Python by deriving from wx.PyImageHandler. 3004 3005Applied patch #1072210: generalize printout.py to allow text printing. 3006 3007Applied patch #1243907: Give Throbber much more flexibility by 3008allowing the user to set the rest image, the direction, the current 3009index, custom sequence. Allows user to manually step through the 3010sequence with Next(), Previous(), Increment(), Decrement() & 3011SetCurrent(). Very handy if you have multiple throbbers that you want 3012to synchronize with a single timer. 3013 3014Fix for bug #1336711: wx.lib.calendar.CalenDlg can yield incorrect 3015result. 3016 3017Applied patch from Morgan Hua for updates to ActiveGrid code 3018(pydocview, ActiveGrid IDE, etc.) 3019 3020Applied patch #1326241: Supporting "setup.py install --install-headers=path" 3021 3022Applied patch from Morgan Hua to fix bug #1219423: CommandManager 3023should not repeat old commands after a branch. 3024 3025Applied patch #1238825 adding search backward capabilities to the 3026demo. Modified to use the up/down options in the wx.FindReplaceDialog 3027instead of a separate menu item. 3028 3029Fix for bug #1266745 and #1387725 in the wx.FindReplaceDialog on MSW. 3030Actually check we are using MSLU before doing the hack designed to 3031workaround a bug in MSLU! 3032 3033wxMSW: wx.lib.iewin.IEHtmlWindow now properly handles tabbing, return 3034and other special keys properly. 3035 3036Lots of PyCrust enhancments started by Franz Steinaeusler, Adi Sieker, 3037and Sebastian Haase, and which in turn were further enhanced, fixed 3038tweaked and finished up by me. The changes include the following: 3039 3040* The Autocomplete and Calltip windows can now be opened manually 3041 with Ctrl-Space and Ctrl-Shift-Space. 3042 3043* In the stand alone PyCrust app the various option settings, 3044 window size and position, and etc. are saved and restored at the 3045 next run. 3046 3047* Added a help dialog bound to the F1 key that shows the key 3048 bindings. 3049 3050* Added a new text completion function that suggests words from 3051 the history. Bound to Shift-Return. 3052 3053* F11 will toggle the maximized state of the frame. 3054 3055* switched to Bind() from wx.EVT_*(). 3056 3057* Display of line numbers can be toggled. 3058 3059* F12 toggles a "free edit" mode of the shell buffer. This mode 3060 is useful, for example, if you would like to remove some output 3061 or errors or etc. from the buffer before doing a copy/paste. 3062 The free edit mode is designated by the use of a red, 3063 non-flashing caret. 3064 3065* Ctrl-Shift-F will fold/unfold (hide/show) the selected lines. 3066 3067* General code cleanup and fixes. 3068 3069* Use wx.StandardPaths to determine the location of the config 3070 files. 3071 3072* Use wx.SP_LIVE_UPDATE on crust and filling windows. 3073 3074* Extended the saving of the config info and other new features to 3075 the PyShell app too. Additionally, other apps that embed a 3076 PyCrust or a PyShell can pass their own wx.Config object and 3077 have the Py code save/restore its settings to/from there. 3078 3079* All of the classes with config info get an opportunity to 3080 save/load their own settings instead of putting all the 3081 save/load code in one place that then has to reach all over the 3082 place to do anything. 3083 3084* Enable editing of the startup python code, which will either be 3085 the file pointed to by PYTHONSTARTUP or a file in the config dir 3086 if PYTHONSTARTUP is not set in the environment. 3087 3088* Added an option to skip the running of the startup code when 3089 PyShell or PyCrust starts. 3090 3091* PyCrust adds a pp(item) function to the shell's namespace that 3092 pretty prints the item in the Display tab of the notebook. 3093 Added code to raise that tab when pp() is called. 3094 3095* Added an option for whether to insert text for function 3096 parameters when popping up the call tip. 3097 3098* Added Find and Find-Next functions that use the 3099 wx.FindReplaceDialog. 3100 3101 3102Applied patches from Will Sadkin for wx.lib.masked modules: 3103 3104* Now ignores kill focus events when being destroyed. 3105 3106* Added missing call to set insertion point on changing fields. 3107 3108* Modified SetKeyHandler() to accept None as means of removing 3109 one. 3110 3111* Fixed keyhandler processing for group and decimal character 3112 changes. 3113 3114* Fixed a problem that prevented input into the integer digit of a 3115 integerwidth=1 numctrl, if the current value was 0. 3116 3117* Fixed logic involving processing of "_signOk" flag, to remove 3118 default sign key handlers if false, so that 3119 SetAllowNegative(False) in the NumCtrl works properly. 3120 3121* Fixed selection logic for numeric controls so that if 3122 selectOnFieldEntry is true, and the integer portion of an 3123 integer format control is selected and the sign position is 3124 selected, the sign keys will always result in a negative value, 3125 rather than toggling the previous sign. 3126 3127wx.FontMapper.SetConfig is deprecated. You should instead just set an 3128application-wide config object with wx.Config.Set, which wx.FontMapper 3129will use by default. 3130 3131Added wx.GetMouseState which returns the current state of the mouse. 3132It returns an instance of a wx.MouseState object that contains the 3133current position of the mouse pointer in screen coordinants, as well 3134as boolean values indicating the up/down status of the mouse buttons 3135and the modifier keys. 3136 3137Added wx.SizerItem.SetUserData 3138 3139A variety of updates to wx.lib.floatcanvas, including Added 3140DrawObjects, including a ScaledTextBox, with auto-wrapping, etc, and 3141Scaled and Unscaled Bitmap Objects. 3142 3143.. warning:: Changed all DrawObjects to take an (x,y) pair rather 3144 than individual x,y parameters. Also changed rectangles and 3145 ellipses to take (w,h) pair. This is an API change, but should 3146 be easy to accommodate, all you need to do is add a parenthesis 3147 pair: (...x, y, ...) ---> (...(x,y), ...) 3148 3149 3150 3151 31522.6.1.0 3153------- 3154* 4-June-2005 3155 3156wx.ListCtrl: patch #1210352, fixes editing in generic wx.ListCtrl with 3157wx.LC_EDIT_LABELS. 3158 3159Applied patch #208286, MediaCtrl DirectShow rewrite. 3160 3161DocView patches from Morgan Hua: bug fixes, and additional SVN 3162commands, also added a default template that uses the text editor for 3163any unknown file type. 3164 3165wxMSW: Use the system IDC_HAND cursor for wx.CURSOR_HAND and only fallback 3166to the strange wxWidgets version if the system one is not available. 3167 3168wx.grid.Grid: Merge the cell size attribute the same way that other 3169attributes are merged, e.g., if it is already set to a non-default 3170value in the current GridCellAttr object then don't merge from the 3171other. 3172 3173wx.lib.evtmgr: Fixed to use wx._core._wxPyDeadObject 3174 3175wx.lib.gridmovers: Don't scroll when the mouse is dragged outside of 3176the grid, unless the mouse is kept in motion. 3177 3178wxMSW: Applied patch #1213290 incorrect logic in 3179wx.TopLevelWindow.ShowFullScreen. 3180 3181Applied patch #1213066 correct device names for Joystick in Linux. 3182 3183wxGTK: Applied patch #1207162 wx.TextCtrl.SetStyle fix for overlapping 3184calls. 3185 3186wx.FileConfig: fixed DeleteEntry to set the dirty flag properly so the 3187change will get written at the next flush. 3188 3189 3190 3191 3192 31932.6.0.1 3194------- 3195* 30-May-2005 3196 3197Added wx.BrushFromBitmap to create a stippled brush in a single step. 3198Also added missing brysh style flags: wx.STIPPLE_MASK 3199wx.STIPPLE_MASK_OPAQUE. 3200 3201wxMSW: Fix for default control colours when the system text fg colour 3202is not black. 3203 3204wxGTK: Patch #1171754, It is now possible to have a menu item that 3205both has an icon and is a submenu. 3206 3207wxMSW: Patch #1197009, better refreshes when windows are moved and 3208resized. 3209 3210wxMSW: Patch #1197468. Keeps track of pending size/position changes 3211in case there is more than one adjustment for a window in a single 3212DeferWindowPos set, then the pending values can be used for defaults 3213instead of current values. 3214 3215Fixed the typemap that converts a Python list of strings to a 3216wxArrayString so it uses the wxPython default encoding. 3217 3218Several docstrings added and updated. Lots more to go. 3219 3220wxMac: Strings added to the clipboard or used in DnD no longer have an 3221extra null character at the end. 3222 3223Added wx.GetXDisplay that returns a raw swigified pointer for the X11 3224Display, or None for the non-X11 platforms. 3225 3226wxMenu: Don't send an event when selecting an already selected radio 3227item. 3228 3229Added wx.LaunchDefaultBrowser. 3230 3231wxMSW: Fixed erroneous selection of content in wx.ComboBox when within 3232a wx.StaticBox. 3233 3234wxMSW: Fixed alpha blitting to take into account source position. 3235 3236Ensure that Python is still in an initialized state before doing any 3237locking or unlocking in wxPyBeginBlockThreads and wxPyEndBlockThreads 3238as these can be triggered after Python has been finalized in embedding 3239situations. 3240 3241Added alternate constructors for wx.Font: wx.FontFromPixelSize, 3242wx.FFont, wx.FFontFromPixelSize. See the docstrings or new api docs 3243for details. 3244 3245Added wx.lib.hyperlink from Andrea Gavana. It is a control like 3246static text that acts like a hyper-link, launching the system's 3247default browser in response to the clicks. 3248 3249Added an optional parameter to wxversion.select that allows you to 3250specify that the extra components specified in the version string are 3251required. For example, if you ask for "2.6-unicode" but only the ansi 3252version is installed then by default the ansi version will be selected 3253as it considered close enough since the version numbers match. If you 3254want to force the options to be required then you can just add a True 3255parameter, like this:: 3256 3257 import wxversion 3258 wxversion.select("2.6-unicode", True) 3259 import wx 3260 3261Tweaked wx.lib.buttons such that flat buttons (e.g. have no bevel and 3262a wx.BORDER_NONE style flag) paint themed backgrounds if there are 3263transparent areas and the parent is displaying a theme. 3264 3265wxMSW: Fix for wrong sash colour of wx.SplitterWindow in the silver 3266theme on XP. 3267 3268Added a wx.xrc.XmlResourceHandler for the Ticker class. See 3269wx/lib/ticker_xrc.py 3270 3271wxSTC: Fixed CmdKeyAssign key bindings for Ctrl-Backspace. 3272 3273wxMSW: Fixed a bug in wx.TextCtrl where all the lines were being used 3274to calculate the best size, instead of using a reasonable limit. 3275 3276XRCed: Use wx.GetDefaultPyEncoding/wx.SetDefaultPyEncoding for 3277changing active encoding. Fixed pasting siblings (Ctrl key pressed 3278while pasting). 3279 3280wx.lib.filebrowsebutton: Bug fix from Chad Netzer for when 3281self.history is None. 3282 3283wx.ogl: Patch from Davide Salomoni that adds an optional point 3284parameter to LineShape.InsertLineControlPoint allowing one to 3285optionally specify where the new control point has to be drawn. 3286 3287wxMSW: setting foreground colour for wx.CheckBox now works when using 3288XP themes. 3289 3290More updates to the docview library modules and sample apps from the 3291ActiveGrid folks. Their sample IDE is now able to integrate with 3292Subversion. 3293 3294wx.grid.Grid: Ensure that the grid gets the focus when it is 3295left-clicked. Note that if you have custom widgets that handle the 3296EVT_LEFT_DOWN event but do not call event.Skip() then you will 3297probably want to add a call to self.SetFocus in the event handler. 3298 3299wxGTK: Add wxSTAY_ON_TOP support [Patch 1206023] 3300 3301wx.TreeCtrl: wx.EVT_TREE_ITEM_MENU event made consistent on all 3302platforms. The location of the click or the item is included in the 3303event as well. 3304 3305wxGTK: Setting background colour of a window now only affects the 3306window itself, not the borders, scrollbars, etc. (Bug #1204069) 3307 3308Print framework: Add more paper sizes and code to fallback to an 3309explicit paper size if a known paper size is not found for the 3310printer. 3311 3312wxMac: Applied patch for bug #1206181 Option-key decodes are wrong, 3313also applied patch for bug #1205691 Modified Fn keys don't work. 3314 3315wx.Image: Fixed to preserve alpha channel in Rotate90 method. 3316 3317wxMSW: Fixed incorrect background colour on wx.CheckListBox. 3318 3319wxMSW: Fixed drawing of owner drawn buttons with multiline labels 3320 3321Removed a bunch of unnecessary files, and removed or replaced images 3322that we're not sure of their origin or license. 3323 3324The default DoGetBestSize is updated to not always return the current 3325size if the window has no sizer, children, or minsize set. Instead 3326the current size is set as the minsize. This solves the occasional 3327problem where a sizer may cause a childless panel to grow but never 3328shrink. 3329 3330wxMSW: When converting a wx.Icon to a bitmap check if the icon has an 3331alpha channel and set the bitmap to use it. 3332 3333Fixed the wrong class name used in wx.PyScrolledWindow's call to 3334_setCallbackInfo. 3335 3336wxMSW: patch #1207202, Fixes GDI leak when using stock cursors. 3337 3338wx.calendar.CalendarCtrl: Patch #1207531, Keeps the CalendarCtrl wide 3339enough even when the weekday names for the locale are shorter than 3340usual. 3341 3342Made GridCellNumberEditor.StartingKey also insert the typed char when 3343there is a range of allowed values (so a wx.SpinCtrl is used instead 3344of a wx.TextCtrl.) 3345 3346 3347 3348 3349 33502.6.0.0 3351------- 3352* 26-Apr-2005 3353 3354wxMSW: Fixed wx.TransientPopupWindow (and therefore wx.TipWindow) to 3355auto-dismiss when the mouse is clicked outside of the popup like it is 3356supposed to. 3357 3358wxMSW: Fixed bug #1167891 wx.Notebook display problem with wx.NB_MULTILINE. 3359 3360wxMSW: Fixed bad cliping of hidden windows inside of wx.StaticBox. 3361 3362wxGTK: The configure flags for selecting GTK+ 1.2.x or 2.x has 3363changed slightly. It is now --with-gtk[=VERSION] where VERSION is 3364either '1', '2' or 'any'. The default is '2'. 3365 3366wx.stc.StyledTextCtrl: Added the following methods for alternate ways 3367to set and fetch text from the document buffer. They work similarly 3368to the existing methods of the same name, except that they don't go 3369through the same string/unicode <--> wxString conversions. The "Raw" 3370methods will do no conversions at all and in a unicode build of 3371wxPython the strings will be in the utf-8 encoding and in an ansi 3372build no assumption is made about the encoding. The "UTF8" functions 3373will attempt to always get/set utf-8 text, which it will always be 3374able to do in a unicode build, and in an ansi build it will depend on 3375the content of the utf-8 used being compatible with the current 3376encoding, (you'll get an exception otherwise.) 3377 3378=================== ==================== 3379AddTextRaw AddTextUTF8 3380InsertTextRaw InsertTextUTF8 3381GetCurLineRaw GetCurLineUTF8 3382GetLineRaw GetLineUTF8 3383GetSelectedTextRaw GetSelectedTextUTF8 3384GetTextRangeRaw GetTextRangeUTF8 3385SetTextRaw SetTextUTF8 3386GetTextRaw GetTextUTF8 3387AppendTextRaw AppendTextUTF8 3388=================== ==================== 3389 3390 3391wx.stc.StyledTextCtrl: Added the StyleSetFontEncoding(style, enc) 3392method that allows you to set the encoding to be used by the font for 3393a particular style. 3394 3395wxMac: Fixed wx.ComboBox to forward the EVT_CHAR, EVT_KEY_DOWN, 3396EVT_KEY_UP and EVT_TEXT events from its embedded text control. 3397 3398wxMac: Corrected refresh bugs in wxGrid. 3399 3400XRCed: Updated to version 0.1.5. 3401 * Added wxWizard, wxWizardPageSimple (only from pull-down menu). 3402 * Hide command for test window. 3403 * Replacing classes works better. 3404 * Added Locate tool. 3405 3406 3407 3408 34092.5.5.1 3410------- 3411* 8-Apr-2005 3412 3413wxMSW: Fixed bug #1022383, 'several ComboBoxes appear selected' 3414 3415wx.grid.Grid: Fixed bug #1163384. Moved the code that handles 3416activating the cell editors to a EVT_CHAR event handler. This is done 3417so the character inserted into the editor will be the "cooked" char 3418value (including accented or composed keys) rather than the raw code 3419provided by the EVT_KEY_DOWN event. 3420 3421Added orient parameter to wx.MDIParentFrame.Tile() 3422 3423wxMSW: wxTextCtrl with wx.TE_RICH2 style now uses RichEdit 4.1 if 3424available. 3425 3426Added GetCount, GetCountRGB, and GetCountColour methods to 3427wx.ImageHistogram. 3428 3429wxMSW: wx.Window.Refresh changed to explicitly refresh all children as 3430well as the parent. Previously it was implicitly done because parents 3431did not clip their children by default. Now that they always clip 3432children then Refresh needed to be fixed to do a recursive refresh. 3433This also fixes the Freeze/Thaw problems that some people had with 34342.5.4.1. 3435 3436wx.SplitterWindow: Send EVT_SPLITTER_SASH_POS_CHANGED only once after 3437end of dragging and not after each CHANGING event (modified patch 3438#1076226) 3439 3440wx.glcanvas.GLCanvas: applied patch fixing problems with X server 3441crash when using nVidia cards (patch 1155132) 3442 3443wx.lib.mixins.listctrl: Patches from Toni Brkic: 3444 * Bugfix for TextEditMixin when the view can't be scrolled 3445 * Enhancement for ListCtrlAutoWidthMixin, allowing it to manage 3446 the width of any column. 3447 3448wxMac: removal and reusing toolbar tools like the other platforms is 3449now possible. 3450 3451wxMac: Correct radio tool selection after calling Realize a 2nd time. 3452 3453wxMSW: Applied patch #1166587, removes all flicker from wx.StaticBox 3454 3455Added wx.lib.foldpanelbar, Andrea Gavana's port of Jorgen Bodde's C++ 3456wxFoldPanelBar classes to Python. 3457 3458wxGTK: Applied patch #1173802, reimplementation of GtkFileChooser 3459wxFileDialog by Mart Raudsepp. Note that this new file dialog is only 3460used on GTK2 >= 2.4. For earlier GTK2 versions and GTK1 then the 3461older generic file dialog is used. 3462 3463wxMSW: fixes to static box borders calculations (finalizes patch 3464#1166587) 3465 3466wx.Image: Use Python's buffer interface API for all image data and 3467alpha Set/Get methods and the ImageFromData* constructors. They all 3468still copy the buffer except for SetDataBuffer and SetAlphaBuffer, but 3469this gives more flexibility on where the data can come from. 3470 3471Added MDI support to XRC 3472 3473Added wx.animate module and a demo. The wx.animate module provides a 3474control that is able to display an animated GIF file. 3475 3476wx.lib.plot.py: Applied patch from Werner F. Bruhin that allows either 3477vertical and/or horizontal gridlines. 3478 3479wxMSW: Extra space given for top border of wx.StaticBoxSizer so the 3480upper line is not cliped when there is no label. 3481 3482wxMSW: Restored old behaviour of wx.StaticBox.SetBackgroundColour only 3483affecting the label. 3484 3485wxMSW: Fixed missing EVT_RIGHT_DOWN and EVT_TREE_ITEM_RIGHT_CLICK 3486events in a wx.TreeCtrl. 3487 3488Added wx.GetTopLevelWindows() function which returns a copy of the 3489list of top-level windows that currently exist in the application. 3490 3491Updated docview library modules and sample apps from the ActiveGrid 3492folks. 3493 3494Added the ActiveGrid IDE as a sample application. 3495 3496 3497 3498 34992.5.4.1 3500------- 3501* 16-Mar-2005 3502 3503wx.Sizer Add, Insert, and Prepend functions now return a reference to the 3504wx.SizerItem that was added to the sizer, and the wx.SizerItem has a 3505GetRect accessor to give the position of the item on the parent window. 3506 3507Added wx.Sizer.GetItem method which returns the wx.SizerItem for the given 3508wx.Window, wx.Sizer or position index. 3509 3510wxMSW: wx.RadioButtons in the same group no longer have to be 3511consecutive (there may be intervening controls). Without this fix, an 3512out-of-sync assert is generated when clicking on a radio button and 3513then calling GetValue(). 3514 3515Some XRC changes: 3516 - Added 'icon' property to wxFrame and wxDialog 3517 - No longer ignores menu bitmaps on non-MSW platforms 3518 - Notebook page bitmaps are now supported 3519 - added system colours and fonts support (based on patch #1038207) 3520 3521wxMSW: fix for [ 1052989 ] TextCtrl.SetBackgroundColour(wx.NullColour) 3522bug. 3523 3524Added wx.PasswordEntryDialog analagous to wx.TextEntryDialog, allows 3525detecting entering an empty string vs. cancel unlike the 3526wx.GetPasswordFromUser dialog function. 3527 3528OGL patch from Shane Holloway: 3529 3530 Two simple problems found in the new python ogl code. First is 3531 the patch for _canvas.py. Essentially:: 3532 3533 dx = abs(dc.LogicalToDeviceX(x - self._firstDragX)) 3534 dy = abs(dc.LogicalToDeviceY(y - self._firstDragY)) 3535 3536 was incorrect because (x,y) and (self._firstDragX, 3537 self._firstDragY) are both already in Logical coordinates. 3538 Therefore the difference between the two is also in logical 3539 coordinates, and the conversion call is an error. This bug 3540 surfaces when you have OGL on a scrollwin, and you are far from 3541 the origin of the canvas. 3542 3543 The second change in _composit.py basically removes the assumption 3544 that the child is in both self._children and self._divisions. 3545 Causes many problems when it's not. ;) 3546 3547Fixed GetSaveData and SetSaveData in wx.lib.multisash to not depend on 3548the default way that class objectss are converted to strings. 3549 3550Fixed problem in StyledTextCtrl.Set[HV]ScrollBar that could leave the 3551internal scrollbar visible. 3552 3553Added wx.StandardPaths which provides methods for determining standard 3554system paths for each platform. 3555 3556wxMSW: The window background is now only erased by default if the 3557background colour or background mode has been changed. This better 3558allows the default system themed behaviour to show through for 3559uncustomized windows. Explicit support added for using the correct 3560theme texture for wx.Notebook pages and their children. 3561 3562wx.Image: Added support for alpha channels in interpolated and 3563non-interpolated image rotation. Added ConvertAlphaToMask helper 3564method for turning shades of grey into shades of alpha and a colour. 3565 3566wxGTK2: Reimplemented DoDrawRotatedText() by way of a rotation of an 3567alpha blended text bitmap. It would be better if Pango could draw 3568directly into an wxImage (as FreeType can,) but that is for later... 3569 3570Added wrappers and a demo for the wx.MediaCtrl class, which can play 3571various forms of audio/video media using native codecs install on the 3572system. So far it is only implemented for Windows and OSX. 3573 3574wxGTK: Patch applied for Freeze()/Thaw() for wxTextCtrtl. 3575 3576Added "gravity" for splitter window (patch 1046105). Gravity is a 3577floating-point factor between 0.0 and 1.0 which controls position of 3578sash while resizing the wx.SplitterWindow. The gravity specifies 3579how much the left/top window will grow while resizing. 3580 3581wxMSW: wx.Slider's C++ implementation rewritten to be more 3582maintainable and hopefully less buggy. The position of the labels has 3583also been changed in order to better comply with Microsoft's examples 3584of how to use the control. 3585 3586wxMSW: Fix wx.TreeCtrl to end label editing if the control loses 3587focus (a slightly modified patch 1084592.) 3588 3589Added wx.EXEC_NODISABLE flag for wx.Execute, which will prevent all 3590the app's windows being disabled while a synchronous child process is 3591running. 3592 3593wxMSW: Much work to correct painting (or leaving transparent) of 3594control backgrounds, properly using background themes on XP, etc. 3595 3596Fixed a circular reference problem with wx.Timer. It will now 3597completely cleanup after itself when the last reference to the timer 3598is removed. If you were previously using timer.Destroy() to cleanup 3599your timers it will no longer work. Instead you should hold a 3600reference to the timer and then del the reference when you are 3601finished with the timer. 3602 3603Updated to 1.3.24 of SWIG. All of my big patches have been applied to 3604the main SWIG source tree, but unfortunatly there were also some bugs 3605added that affected the wxPython build and a few details in my 3606original patch were changed/removed, so we are still not free of 3607patches. A new patch for SWIG is located in the wxPython/SWIG 3608directory of the wxPython source tree. SWIG 1.3.24 plus this patch 3609should be used by anyone who is making custom modifications to 3610wxPython's .i files, or building their own extension modules or 3611etc. that need to interact with the wxPython swigged types. For the 3612morbidly curious, here are a few more details: 3613 3614* Since it is now possible easily and simply share the SWIG type 3615 tables across modules I reverted to always using the stock SWIG 3616 runtime instead of my slightly hacked up version of it exported 3617 via the wxPython C API. 3618 3619* The %name directive is now deprecated so I replaced most uses of 3620 it with a custom %Rename macro that uses %rename internally. 3621 These will evetually need to be replaced with a DocDecl macro 3622 when docstrings are added for those items. 3623 3624* The "this" attribute of all SWIGged classes is no longer a 3625 string containing a "swigified pointer", but rather a custom 3626 built-in type that holds the real C pointer to the object and 3627 the type info. It can be converted to a string like the old 3628 value using str() or to the long integer value of the pointer 3629 using long(). 3630 3631Added SetDefaultPyEncoding and GetDefaultPyEncoding functions which 3632will set/get the encoding used by wxPython to convert string or 3633unicode objects to/from wxString objects. Previously the default 3634Python encoding was always used, but unless the user had tweaked their 3635sitecustomize.py file it is always "ascii", which would result in 3636errors if the strings contained character codes >= 128. 3637SetDefaultPyEncoding will now allow you to control which encoding will 3638be used to do those conversions. The default encoding is set to the 3639value of `locale.getdefaultlocale()[1]` when wxPython is first 3640imported. Please see http://www.alanwood.net/demos/charsetdiffs.html 3641for information on the differences between the common latin/roman 3642encodings. 3643 3644Added wxStdDialogButtonSizer, which is a a special sizer that knows 3645how to order and position standard buttons in order to conform to the 3646current platform's standards. You simply need to add each `wx.Button` 3647to the sizer, and be sure to create the buttons using the standard 3648ID's. Then call `Realize` and the sizer will take care of the rest. 3649 3650wxMSW Toolbar: pass correct tool id (and not always -1) to the 3651EVT_TOOL_RCLICKED handler 3652 3653wxGTK: Applied patch for combo box SELECTED events (no longer get 3654lots of surplus events) 3655 3656wxGTK: Applied patch for proper menu highlight colour detection in 3657wx.SystemSettings. 3658 3659wxGTK: Commited scrollbar patch #1093339 which sends lineup, linedown 3660events based on intercepting the mouse down events. 3661 3662wxGTK: Applied patch #1102789 which solved conflicts between wxWidgets 3663and GTK+'s context menu code. 3664 3665wxGTK: Applied patch #1100327 for correct feedback from DND actions 3666(not all actions are allowed). 3667 3668Fixed memory leak in wxGrid::UpdateAttr[Rows][Or][Cols] (patch 1104355) 3669 3670For efficiency reasons, text controls no longer set the string for 3671each text updated event, but rather query for the string value only 3672when GetString is called from an event handler. 3673 3674Added wx.SL_INVERSE style which will cause wx.Slider to invert the min 3675and max ends of the slider. 3676 3677Several patches applied, such as #1111174, #1110252 and others, that 3678make the generic wx.TreeCtrl (used on wxGTK and wxMac) be more 3679conistent with the wxMSW native wx.TreeCtrl. 3680 3681XRCed: 3682 * Edit->Locate command (Ctrl-L) for quick selection of items. 3683 Works with event-handling controls (buttons, text fields) but 3684 not with labels/sizers. 3685 * Some improvements: relative paths for files supplied as command- 3686 line argument work correctly, notebook panels are highlighted 3687 better. 3688 3689wxMac: Fixed a long-standing issue where wxSlider controls with a 3690hardcoded size would misplace their labels behind the slider control. 3691 3692wx.HtmlListBox fixed so calling RefreshLine(s) will cause the data for 3693that line to be refetched from the overridden methods in the derived 3694class. 3695 3696The default DoGetBestSize now includes the difference (if any) between 3697the client size and total size of the window, (such as the size of 3698borders.) Code that sets the client size using the best size, or that 3699added extra space to sizers to compensate for this bug may need to be 3700changed. 3701 3702Can suppress themed notebook pages with the wxNB_NOPAGETHEME style or 3703setting system option msw.notebook.themed-background to 0. 3704 3705wxSyledTextCtrl updated to use Scintilla 1.62. 3706 3707Can now set the msw.window.no-clip-children system option to 1 to 3708eliminate weird refresh behaviour (delays between a window being 3709erased and repainted, giving a ghostly gradual-redraw effect). May be 3710a temporary 'fix' until properly fixed before 2.6. 3711 3712wxMac: Toolbar is now more native looking with borderless toolbar 3713buttons. 3714 3715wxMac: Switched wx.Bitmap to use newer Quartz object types and APIs 3716internally. This results in faster display and better alpha support. 3717 3718Added wx.DatePickerCtrl. 3719 3720wx.html.HtmlWindow now supports background images. 3721 3722Added wx.lib.gestures module from Daniel Pozmanter which supports 3723using Mouse Gestures in an application. 3724 3725wxGTK2: ENTER and LEAVE mouse events are now sent for multi-line text 3726controls. 3727 3728wxMSW: "Alt" key (VK_MENU) now results in WXK_ALT keyboard event, not 3729WXK_MENU 3730 3731Added modules from Peter Yared and Morgan Hua that implement the wx 3732Doc/View framework in pure Python code. See wx.lib.docview for the 3733base implementation and wx.lib.pydocview for Python-specific 3734extensions. There are also a couple sample applications located in 3735samples/docview. 3736 3737Added GetBitmap, GetIcon to wx.ImageList. 3738 3739wxGTK wx.Button.SetLabel no longer invalidates/resets the font. 3740 3741wx.Sizer.AddWindow, AddSizer, AddSpacer and etc. have now been 3742undeprecated at the request of Riaan Booysen, the Boa Constructor team 3743lead. Boa needs them to help keep track of what kind of item is being 3744managed by the sizer. They are now just simple compatibility aliases 3745for Add, and etc. 3746 3747The old C++ version of the OGL lib is no longer built by default. Use 3748the Python version in the wx.lib.ogl package instead. 3749 3750The wx.iewin module is no longer built by default. You can use the 3751wx.lib.iewin version instead. 3752 3753Fixed wx.BufferedPaintDC for scrolled windows to work whether the 3754buffer is covering only the client area or the full virtual area of 3755the scrolled window. By default it will assume that only the client 3756area is covered. This is different than the old behavior so to 3757indicate that the entire virtual area is covered simply add a 3758style=wx.BUFFER_VIRTUAL_AREA parameter. 3759 3760wx.gizmos.TreeListCtrl: Add support for the EVT_TREE_ITEM_GETTOOLTIP 3761event. 3762 3763Added Resize, SetRGBRect, Size, and GetOrFindMaskColour methods to 3764wx.Image. 3765 3766Added wx.Rect.IsEmpty 3767 3768wxGTK: 3769 - Corrected wx.ListBox selection handling 3770 - Corrected default button size handling for different themes 3771 - Corrected splitter sash size and look for different themes 3772 - Fixed keyboard input for dead-keys 3773 3774 3775 3776 37772.5.3.1 3778------- 3779* 9-Nov-2004 3780 3781wxMac focus and border refreshes corrected. 3782 3783Updated internal PNG library. 3784 3785wxMac fix for metal appearance on wx.ToolBar. 3786 3787wx.grid.Grid fix allowing DoGetBestSize to be called before CreateGrid 3788(which means that a min size doesn't need to be specified.) 3789 3790wxMac fix for not sending a native click to a control if it is not 3791enabled (does an enable itself) 3792 3793Added wx.lib.ogl.DrawnShape, and fixed various little bugs in the new 3794OGL. 3795 3796Added support to XRC and XRCed for the 3-state checkbox flags and also 3797for wx.ToggleButton. Updated the generic window styles supported by 3798XRCed. 3799 3800It is now possible to create "stock" buttons. Basically this means 3801that you only have to provide one of the stock IDs (and either an 3802empty label or a label that matches the stock label) when creating the 3803button and wxWidgets will choose the stock label to go with it 3804automatically. Additionally on the platforms that have a native 3805concept of a stock button (currently only GTK2) then the native stock 3806button will be used. For example, the following will result in a 3807button with "Cancel" as the label and if run on wxGTK2 then there will 3808also be an image of a red X:: 3809 3810 b = wx.Button(parent, wx.ID_CANCEL) 3811 3812 3813Added wx.lib.ticker.Ticker class from Chris Mellon. 3814 3815Fix some incorrect clipping regions in wxSTC on wxGTK. 3816 3817Added wrapper for wx.grid.Grid.GetOrCreateCellAttr. 3818 3819Removed my copy of distutils from the wxPython source tree. Now that 3820I am no longer doing builds on Python 2.1 the newest distutils is no 3821longer needed. (There is still one small bug in Python 2.2 distutils 3822on win32, but it is easily worked around.) This sovles the problem of 3823incorrect builds on some systems where the system installed distutils 3824has been patched to behave slightly differently, for example SuSE on 3825x86_64 or Chandler's build. 3826 3827Updated to SWIG 1.3.22 (plus my patch.) See wxPython/SWIG/README.txt 3828in the source tree if you need to use SWIG when building your own copy 3829of wxPython, or other extension modules that need to integrate with 3830the wxPython modules. 3831 3832Added wx.Frame.RequestUserAttention which, if the platform suports it, 3833will do something (such as flash the task bar item) to suggest to the 3834user that they should look at that window. 3835 3836"Fixed" wx.grid.Grid.SetDefaultEditor and SetDefaultRenderer by making 3837them register the editor or renderer for the "string" data type. 3838 3839Added depth param to wx.Image.ConvertToBitmap. 3840 3841Extended the wx.calendar.CalendarCtrl class with methods that get/set 3842a Python datetime or date object. (These will only work with Python 38432.3+) The methods are PySetDate, PyGetDate, PySetLowerDateLimit, 3844PySetUpperDateLimit, PySetDateRange, PyGetLowerDateLimit, and 3845PyGetUpperDateLimit. Also, CalendarEvent was extended with PySetDate 3846and PyGetDate methods. 3847 3848wxMSW: SetBackgroundColour on a wx.Choice or a wx.ComboBox will now 3849also set the colour of the dropdown. 3850 3851wxMac: MessageDialog now supports wx.NO_DEFAULT style 3852 3853wxMSW: added AssociateHandle and DissociateHandle to wx.Window 3854 3855wxMac: fix for toolbar tooltips 3856 3857wx.Sizer.Show (and Hide) now take an optional parameter specifying if 3858the item to be shown should be searched for recursivly in subsizers, 3859and return a boolean value indicating if the item was found. 3860 3861wxMSW: fixed MaximizeEvent generation in wx.Frame 3862 3863wxMSW: fixed sending duplicate EVT_COMBOBOX events 3864 3865Smoother time estimation updates in wx.ProgressDialog (patch 992813) 3866 3867Made wx.Listbook events more consistent with wx.Notebook ones (patch 38681001271) 3869 3870Fixed rounding errors in variable status bar panes widths computation 3871(patch 1030021) 3872 3873Added possibility to specify printer bin (patch 910272) 3874 3875wxMSW: fixed wx.ListCtrl's SetWindowStyleFlag() to not remove 3876WS_VISIBLE; also refresh the control automatically (closes bug 38771019440) 3878 3879Added wx.Choicebook, yet another notebook-like control. 3880 3881wxMSW: Make radiobutton tab behaviour the same on MSW as in standard 3882MSW app, i.e. tab into the activated, not necessarily the first radio 3883button. 3884 3885Added limited support for wxEventLoop (you can't derive from a 3886wx.PyEventLoop version yet...) Updated and moved the sample showing 3887how to replace the MainLoop to samples/mainloop/mainloop.py. 3888 3889The C++ xrc lib has been moved out of contrib and into the core, so it 3890is always built by default. wxPython's build has also changed 3891accordingly and will build the xrc module as part of the core set of 3892modules built by default. If you were axplicitly using BUILD_XRC then 3893it will no longer be recognized as a build option, otherwise you 3894should notice no difference. 3895 3896wxMac: Fixed radio toolbar buttons to correctly untoggle the others 3897when a new one is selected. 3898 3899wxMac: Fixed GetLineLength and GetLineText for MLTE text controls 3900 3901wxMac: wx.TaskBarIcon is implemented by allowing you to change the 3902app's icon on the Dock and also specifying a menu that should be 3903merged with the normal dock popup menu. See the MigrationGuide for 3904more details and a warning. 3905 3906Added wx.TopLevelWindow.IsActive() which tells you if the frame or 3907dialog is or containts the active window with the keyboard focus. 3908 3909Added ability to create a font based on pixel size rather than point 3910size via the FontFromPixelSize constructor. 3911 3912Updated the Scintilla used by StyledTextCtrl to version 1.61 3913 3914Improved image HitTest for TreeListCtrl. 3915 3916Added wx.App.IsMainLoopRunning. 3917 3918wxGTK: Make wxComboBox spit out a bit fewer surplus events when 3919holding down the mouse button. 3920 3921wxGTK: Enable key based navigation through notebook tabs as in the 3922native control with Left and right keys. Support for vetoing. 3923 3924FloatCanvas updates from Chris Barker 3925 3926PyPlot updates from Gordon Williams: 3927 - Added bar graph demo 3928 - Modified line end shape from round to square. 3929 - Removed FloatDCWrapper for conversion to ints and ints in 3930 arguments 3931 - Imported modules given leading underscore to name. 3932 - Added Cursor Line Tracking and User Point Labels. 3933 - Demo for Cursor Line Tracking and Point Labels. 3934 - Size of plot preview frame adjusted to show page better. 3935 - Added helper functions PositionUserToScreen and 3936 PositionScreenToUser in PlotCanvas. 3937 - Added functions GetClosestPoints (all curves) and GetClosestPoint 3938 (only closest curve) can be in either user coords or screen 3939 coords. 3940 3941MaskedEdit updates from Will Sadkin: 3942 - Added '*' mask char that means "all ansii chars" (ords 32-255) 3943 - Added proper unicode support to masked controls and wx.tools.dbg 3944 - Fixed two reported missing import bugs introduced by package 3945 creation 3946 - Converted masked package doc strings to reST format for better 3947 epydoc support 3948 - lots of doc string improvements and function hiding to better 3949 reflect package's public contents. 3950 3951Restructured the installer packages slightly to help facilitate having 3952multiple versions of wxPython installed at the same time. See the 3953Migrarion Guide for more information. 3954 3955Applied patch from Pim Van Heuven that modifies 4 files: 3956 - wxPython/demo/ListCtrl_edit.py (new demo) 3957 - wxPython/demo/Main.py (include new demo in demo app) 3958 - wxPython/wx/lib/mixins/listctrl.py (several improvements to 3959 TextEditMixin) 3960 - wxPython/wx/lib/wxpTag.py (some small fixes) 3961 3962Added (thanks to Kevin Ollivier!) wrappers for wx.WebKitCtrl for the 3963OSX build. Other platforms will raise an exception if you try to use 3964it. 3965 3966wxPython on OSX can now be built in Unicode mode, can support multiple 3967version installs, and comes with an uninstaller script. 3968 3969 3970 3971 3972 39732.5.2.8 3974------- 3975* 27-Aug-2004 3976 3977Predominantly a bug-fix release: 3978 3979* Fixed fatal error due to improper wrapping of wx.FSFile. 3980 3981* Fixed return type of EditableListBox.GetListCtrl 3982 3983* Give generic tree and list controls a DoGetBestSize so they play 3984 nicer with sizers when there is no minimal size. 3985 3986* Some tweaks in the demo and samples to correct layout, some 3987 flicker problems, and namespace use. 3988 3989* Add wx.Image.ConvertAlphaToMask 3990 3991* Minor corrections in wx.lib.dialogs 3992 3993* wx.FileHistory constructor now accepts the documented 2nd 3994 parameter. 3995 3996* Corrections for exceptions in the new ogl 3997 3998* Fixed XRCed to not use reparenting of windows to implement caching 3999 of property panels, since Reparent on wxMac is not implemented. 4000 4001* Add support for wxTAB_TRAVERSAL to the XRC handler for 4002 wxScrolledWindow. 4003 4004* Add support for all wxListBox styles to the XRC handler for 4005 wxCheckListBox. 4006 4007* Fix for wx.Listbook.DeleteAllPages to really delete everything. 4008 4009* wxGTK2 now supports alpha blended bitmap drawing 4010 4011* Made wx.grid.Grid play nicer with sizers. 4012 4013* etc. 4014 4015 4016 4017 40182.5.2.7 4019------- 4020* 14-Aug-2004 4021 4022wx.ADJUST_MINSIZE is now the default behaviour for window items in 4023sizers. This means that the item's GetMinSize and/or GetBestSize will 4024be called when calculating layout and the return value from that will 4025be used for the minimum size used by the sizer. The wx.FIXED_MINSIZE 4026flag was added that will cause the sizer to use the old behaviour in 4027that it will *not* call the window's methods to determine the new best 4028size, instead the minsize that the window had when added to the sizer 4029(or the size the window was created with) will always be used. Please 4030see the Sizers section in the Migration Guide for more details. 4031 4032Added new MaskedEditControl code from Will Sadkin. The modules are 4033now locaed in their own sub-package, wx.lib.masked. Demos updated. 4034 4035The changes that implemented the incompatible wx.DC methods in 2.5.1.5 4036have been reverted. The wx.DC methods are now compatible with the 2.4 4037implemetation. In addition a set of renamed methods have been added 4038that take wx.Point and/or wx.Size objects instead of individual 4039parameters. 4040 4041Added wx.lib.mixins.listctrl.TextEditMixin, a mixin class that allows 4042all columns of a wx.ListCtrl in report mode to be edited. 4043 4044Deprecated the wx.iewin module. 4045 4046Deprecated the wx.Sizer.AddWindow, AddSizer, AddSpacer methods as well 4047as their Insert* and Prepend* counterparts. 4048 4049Added a generic StaticBitmap class in wx.lib.statbmp for the same 4050reasons that stattext was created, so it could be mouse sensitive on 4051all platforms like normal windows. Also updated stattext.py and 4052buttons.py to handle attribute (font & colour) defaults and 4053inheritance the new way. If you have custom controls of your own you 4054should review stattxt.py or one of the others to see how it is to be 4055done. 4056 4057wx.InitAllImageHandlers is now an empty function that does nothing but 4058exist for backwards compatibility. The C++ version is now called 4059automatically when wxPython is initialized. Since all the handlers 4060are included in the wxWidgets shared library anyway, this imposes only 4061a very small amount of overhead and removes several unneccessary 4062problems. 4063 4064Replaced wx/lib/pubsub.py with a version that uses weak references to 4065track the subscribers, plus other fixes/additions. Thanks go to 4066Oliver Schoenborn and Robb Shecter. 4067 4068wxGTK now uses gtk_init_check so wxPython can raise an exception if 4069there is no DISPLAY available or other initializaion problem. 4070 4071wx.GetKeyState now has an implementation for wxGTK and is able to 4072detect the up/down or toggle state of modifier and toggle keys. 4073 4074The LC_NUMERIC locale is now reset back to "C" (compatibility) when 4075running on wxGTK to work around the fact that GTK requires the locale 4076to be set to the system settings but Python depends on LC_NUMERIC 4077remaining compatible with "C". 4078 4079Switched gizmos.TreeListCtrl to the newer version of the code from the 4080wxCode project. 4081 4082OGL is dead! LONG LIVE OGL! (Oops, sorry. A bit of my dramatic side 4083leaked out there...) The wx.ogl module has been deprecated in favor 4084of the new Python port of the OGL library located at wx.lib.ogl 4085contributed by Pierre Hjälm. This will hopefully greatly extend the 4086life of OGL within wxPython by making it more easily maintainable and 4087less prone to getting rusty as there seems to be less and less 4088interest in maintaining the C++ version. At this point there are just 4089a couple minor known compatibility differences, please see the 4090MigrationGuide file for details. 4091 4092EVT_STC_POSCHANGED has been removed as it has been deprecated in 4093Scintilla for several releases now. 4094 4095All the Window and GDI (pen, bitmap, etc.) class constructors and also 4096many toplevel functions and static methods will now check that a 4097wx.App object has already been created and will raise a 4098wx.PyNoAppError exception if not. 4099 4100Added more default args as needed to allow most window types to be 4101constructed with only the parent window arg. In some cases other args 4102may be required for normal operation, but they can usually be set 4103after construction. 4104 4105Removed the deprecated ErrorDialogs and PythonBitmaps modules. If you 4106were using these in your apps then please join wxPython-dev and assist 4107with a more modern reimplementation. 4108 4109Added a new version (0.8.3) of FloatCanvas from Chris Barker. It's now 4110in a subpackage of wx.lib. 4111 4112It is now possible to change the tab traversal order of controls on a 4113panel or dialog. For details see the new MoveAfterInTabOrder and 4114MoveBeforeInTabOrder methods of wx.Window. 4115 4116Applied (and heavily modified) a patch from Eugene 4117<svip123@fastmail.fm> that allows the sample modules in the demo to be 4118edited and reloaded, all from within the demo. You can switch back 4119and forth between the default and your edited version, and any errors 4120ocurring upon the reload are reported on the Demo tab. 4121 4122Added a menu item in the demo that will open a PyShell window that has 4123the app and demo frame preloaded in the namespace. This is another 4124good way to explore and play with the objects in the currently running 4125sample. For example, load the Button sample and then do the following 4126in the PyShell:: 4127 4128 >>> b = frame.demoPage.GetChildren()[0] 4129 >>> for x in range(0, 500, 10): 4130 ... b.Move((x, 50)) 4131 ... app.Yield(True) 4132 ... wx.MilliSleep(10) 4133 4134 4135wxGTK: Applied wxNO_BORDER patch (#1098374) for text control and combo 4136box. 4137 4138 4139 41402.5.1.5 (the 'this is *not* a joke' release) 4141----------------------------------------------- 4142* 2-Apr-2004 4143 4144(See also the MigrationGuide file for details about some of the 4145big changes that have happened in this release and how you should 4146adapt your code.) 4147 4148The wxWindows project and library is now known as wxWidgets. Please 4149see http://www.wxwindows.org/name.htm for more details. This won't 4150really affect wxPython all that much, other than the fact that the 4151wxwindows.org domain name will be changing to wxwidgets.org, so mail 4152list, CVS, and etc. addresses will be changing. We're going to try 4153and smooth the transition as much as possible, but I wanted you all to 4154be aware of this change if you run into any issues. 4155 4156 4157Many, many little fixes, changes and additions done as part of the move 4158to wxWidgets 2.5 that I have forgotten about. 4159 4160Added wxMirrorDC. 4161 4162Added wxIconLocation 4163 4164Added Python wrappers and demos for the new wxVScrolledWindow, 4165wxVListBox, and wxHtmlListBox classes. 4166 4167Added wrappers for wxBookCtrl and wxListbook. wxNotebook now derives 4168from wxBookCtrl. 4169 4170Added Gordon Williams' PyPlot module to the library, available as the 4171wx.lib.plot module. 4172 4173I made a small but important change in the code that aquires the 4174Python Global Interpreter Lock to try and prevent deadlocks that can 4175happen when there are nested attempts to aquire the GIL. 4176 4177The RPMs will now install menu items on Mandrake Linux in 4178Applications/Development/Tools for PyCrust, XRCed, etc. The RPMs are 4179also installing icons and ``*.desktop`` items in the generic KDE and 4180GNOME locations, but I don't know yet if they are resulting in menu 4181items on non-Mandrake systems. (It didn't automatically do it on my 4182RH-9 build box but I didn't chase it very far...) If you have ideas 4183for how to improve the .spec file to work better and/or on more 4184distros please send me a patch. 4185 4186The RPMs are now built on a fairly generic RH-9 box, and I have tested 4187installing them also on my main Mandrake 9.2 box. 4188 4189There are some big changes in the OS X disk image. The actual 4190Installer package now *only* installs the wxMac dynlibs, wxPython 4191extension modules and Python packages, and also the command-line tool 4192scripts. The remaining items (demo, samples, and application bundles 4193for the Demo, PyCrust and XRCed) are now top-level items in the disk 4194image (.dmg file) that users can just drag and drop to wherever they 4195want to put them. 4196 4197The wxWave class has been renamed to wxSound, and now has a slightly 4198different API. 4199 4200Updated the AnalogClockWindow with many enhancements from E. A. Tacão. 4201 4202wxMac now has wx.ToggleButton! 4203 4204wx.stc.StyledTextCtrl has been updated to version 1.58 of Scintilla. 4205 4206To help with the wx.stc.StyledTextCtrl performance issues on wxMac 4207I've added a SetUseAntiAliasing method (and GetUseAntiAliasing too) 4208that will turn off the use of antialiased fonts in the wxSTC, allowing 4209it to bypass the slow text measuring routines and use the fast and 4210simple one instead. By default the setting is turned off (on wxMac 4211only.) When run on OSX the Py* apps have a new item on the Options 4212menu for controlling this setting if you would like to experiment with 4213it. 4214 4215Updated wx.lib.calendar with many fixes and enhancements from Joerg 4216"Adi" Sieker. 4217 4218Added wx.Display and wx.VideoMode. 4219 4220AppleEvents can be handled by overriding wx.App methods MacOpenFile, 4221MacPrintFile, MacNewFile, and MacReopenApp. 4222 4223Added wx.PlatformInfo which is a tuple containing strings that 4224describe the platform and build options of wxPython. See the 4225MigrationGuide for more details. 4226 4227Created a new extension module "activex" from Lindsay Mathieson's 4228newest wxActiveX_ class. (The existing iewin module used an older 4229version of this code, but only exposed the wxIEHtmlWin class.) This 4230new module will (in theory ;-) ) allow you to host arbitrary ActiveX 4231controls in a wx.Window, **without** requiring the use of the win32com 4232and other PyWin32 modules! This should eliminate the cronic problems 4233that have resulted from minor mismatches in how PyWin32 handles the 4234GIL and tstate when making callbacks, etc. The older iewin module 4235will be left in this release as the new stuff is not fully backwards 4236compatible, but you should migrate your code to the new IEHtmlWindow 4237in wx.lib.iewin, so the old one can be eventually removed. 4238Additionally, I've always considered that the wx.lib.activexwrapper 4239module is an ugly hack that I only included in the lib because I 4240couldn't figure out anything better. Well now we have something that, 4241if it isn't already, has the potential to be better. So consider 4242migrating away from using activexwrapper as well. Please see the 4243MigrationGuide for more details on using the new module. 4244 4245.. _wxActiveX: http://members.optusnet.com.au/~blackpaw1/wxactivex.html 4246 4247Floats are allowed again as function parameters where ints are expected. 4248 4249 4250 4251 42522.4.2.4 4253------- 4254* 1-Oct-2003 4255 4256Use wxSTC in the demo for displaying the soucre code of the samples. 4257 4258Lots of bug fixes and such from the wxWindows folks. 4259 4260Added wxPython.lib.newevent from Miki Tebeka. Its usage is 4261demonstrated in the Threads sample in the demo. 4262 4263Updates to wxMaskedEditCtrl. 4264 4265Added wxMaskedNumCtrl. 4266 4267Added Chris Barker's FloatCanvas. 4268 4269 4270 42712.4.1.2 4272------- 4273* 19-Jun-2003 4274 4275Added wxScrolledPanel from Will Sadkin 4276 4277Added SetShape method to top level windows (e.g. wxFrame.) 4278 4279Changed wxSWIG to not generate Python code using apply, (since it will 4280be deprecated in the future) wxSWIG will use ``spam(*args, **kw)`` syntax 4281instead. Also changed the generated __repr__ methods to be a bit more 4282informative. 4283 4284Made the version number information more robust and uh, informative. 4285Also added asserts to check that the major.minor versions of wxPython 4286and wxWindows match. 4287 4288Added the new wx "renamer" package that will dynamically import from 4289the wxPython package and rename wxFooBar --> FooBar. That means that 4290people can do imports without ``"import *"`` and can use names like 4291wx.Frame instead of wx.wxFrame. This is phase 1 of a full transition 4292to the new namespace. 4293 4294Updated Scintilla to 1.52. I also changed it to use wxListCtrl 4295instead of wxListBox for the AutoComplete window, added the ability to 4296use custom bitmaps in the margin and in the AutoComplete windows, and 4297worked out how to do proper clipping of child windows on wxGTK. 4298 4299Patrick O'Brien's PyCrust package has been renamed to Py and now 4300includes several new tools. As part of the change the location of the 4301pacakge has changed as well, it is now accessible as "from wxPython 4302import py" (or "from wx import py" using the new namespace.) There 4303are still some transition modules in the wxPython.lib.PyCrust package 4304that will issue a warning and then import what is needed from the new 4305package. These will be removed in a future release. 4306 4307Added __nonzero__ method to wxTreeItemId, wxBitmap, wxImage, wxFont, 4308and most other classes that have an Ok or IsOK method. This allows 4309code like "if obj: ..." to be the same as "if obj.IsOk(): ..." 4310 4311Toolbars on wxMac can now have controls on them. 4312 4313Added wxPython.lib.analogclock module based on samples that were 4314passed back and forth on wxPython-users a while back. 4315 4316Added masked edit controls (wxPython.lib.maskededit) by Jeff Childers 4317and Will Sadkin. Updated wxTimeCtrl to use MaskedEdit. 4318 4319When the __class__ of a dead object is replaced with _wxPyDeadObject 4320the __del__ of the original class is now called first. 4321 4322Added wxTreeListCtrl. (Looks like a wxTreeCtrl embedded in a 4323wxListCtrl, but actually is just giving multiple columns to a 4324wxTreeCtrl.) 4325 4326Added wxFutureCall, a subclass of wxTimer that makes it easy to delay 4327a call to any Python callable object. 4328 4329Added wxPy versions of wxPrintPreview, wxPreviewFrame, and 4330wxPreviewControlBar so they can be derived from in Python and be able 4331to override the C++ virtual methods. 4332 4333Simplified how the wxSizer methods are wrapped, changed the name of 4334the "option" parameter to "proportion" to match the docs ("option" is 4335still accepted for compatibility, but this will go away in a future 4336release,) SetItemMinSize can now take a wxSize (or 2-tuple) parameter, 4337and Spacers can be specified with a wxSize (or 2-tuple) parameter 4338 4339Added wxCursorFromBits. 4340 4341 4342 4343 4344 43452.4.0.7 4346------- 4347* 24-Mar-2003 4348 4349Gave up on generating a warning upon the use of the old true/false or 4350TRUE/FALSE values. 4351 4352Fixed wxGenericTreeCtrl (used on wxGTK and wxMac for wxTreeCtrl) so 4353that it can successfully handle lots of nodes instead of overflowing 4354when the virtual height of the widget overflowed a 16-bit value. 4355 4356Fixed the typemap that converts strings to wxColours to also accept 4357unicode. 4358 4359Fixed problem where the wrong class name could sometimes be used for 4360OOR. 4361 4362Fixed an interpreter lock problem in the __eq__ and __ne__ methods in 4363wxSize and etc. 4364 4365Updated PyCrust to version 0.9 4366 4367Instead of always logging C++ assertions, added wxPYAPP_ASSERT_LOG 4368flag to turn it on. In most cases turning it into an exception (the 4369default behavior) is enough. See below in the 2.3.4.1 notes for more 4370details. 4371 4372 4373 4374 43752.4.0.6 (a.k.a. the I'm so stupid release) 4376------------------------------------------ 4377* 11-Mar-2003 4378 4379The new deprecation class for the old true/false symbols can now be 4380returned from OnInit. And I promise to be sure I am testing what I 4381think I am testing in the future... 4382 4383 4384 43852.4.0.5 (a.k.a. the blame it on Kevin release) 4386---------------------------------------------- 4387* 7-Mar-2003 4388 4389A few little but annoying bug fixes. 4390 4391Updated pycolourchooser. 4392 4393Updated to 0.9b of PyCrust. 4394 4395 4396 43972.4.0.4 4398------- 4399* 7-Mar-2003 4400 4401Added missing wxRect methods 4402 4403Add OOR support for wxApp objects too. 4404 4405Added wxCursorFromImage, which works on wxMSW and wxGTK so far. 4406 4407All platforms now send EVT_DESTROY_WINDOW. Be warned that at the time 4408the event is sent the window is in the process of being deconstructed, 4409and so calling some (most?) methods of the window itself may cause 4410problems. 4411 4412Fixed SF Bug #689481, a method in the OGL wrappers was using the wrong 4413return type. 4414 4415Fixed SF Bug #689958, an endless loop in printout.py. 4416 4417Added EVT_WINDOW_CREATE_ID and EVT_WINDOW_DESTROY_ID so these events 4418can be associated with a specific window ID and more easily caught by 4419the parent window. 4420 4421Fixed copy-paste error in wxListCtrl.GetFirstSelected. 4422 4423Added missing Init method (and an overloading wrapper) to wxLocale 4424wrapper. 4425 4426Added a wxBitmap.SetMaskColour convenience method. 4427 4428Changed how the dynamic event tables (used for all Python wx classes, 4429C++ wx classes typically use static event tables) are searched such 4430that they behave from a Python perspective more like the static tables 4431in C++. Namely that if there are identical event bindings in a base 4432Python class and a derived Python class that the one in the derived 4433class will be found first and that if Skip is called that the one in 4434the base class will still be found instead of skipping directly to the 4435static stable in the C++ class. 4436 4437Switched to using True/False in the wxPython lib and demo instead of 4438true/false or TRUE/FALSE to prepare for the new boolean type and 4439constants being added to Python. Added code to wx.py to test for the 4440existence of the new constants and to create suitable values if not 4441present. 4442 4443Added some static wxApp functions that help with integration with the 4444Mac UI. They are no-ops on other platforms so it doesn't hurt to 4445always call them. The functions are:: 4446 4447 wxApp_GetMacDefaultEncodingIsPC 4448 wxApp_GetMacSupportPCMenuShortcuts 4449 wxApp_GetMacAboutMenuItemId 4450 wxApp_GetMacPreferencesMenuItemId 4451 wxApp_GetMacExitMenuItemId 4452 wxApp_GetMacHelpMenuTitleName 4453 wxApp_SetMacDefaultEncodingIsPC 4454 wxApp_SetMacSupportPCMenuShortcuts 4455 wxApp_SetMacAboutMenuItemId 4456 wxApp_SetMacPreferencesMenuItemId 4457 wxApp_SetMacExitMenuItemId 4458 wxApp_SetMacHelpMenuTitleName 4459 4460Refactored, enhanced and added capabilities for the DrawXXXList 4461functions, inspired by code from Chris Barker. 4462 4463The wxWindows .mo language catalog files are now installed in a 4464subdirectory of the wxPython package dir on MSW since that platform 4465doesn't have a standard place for them. 4466 4467Added missing deselect methods for wxGrid. 4468 4469Fixed typemaps for wxGridCellCoordsArray. 4470 4471Updated to the 0.9a version of PyCrust 4472 4473 4474 44752.4.0.2 4476------- 4477* 23-Jan-2003 4478 4479Several bug fixes. 4480 4481Added wxIntCtrl from Will Sadkin. 4482 4483Added wxPyColourChooser by Michael Gilfix. 4484 4485 4486 4487 44882.4.0.1 4489------- 4490* 10-Jan-2003 4491 4492No major new features since 2.3.4.2, mostly bug fixes and minor 4493enhancements. 4494 4495Added function wrappers for the common dialogs from Kevin Altis. See 4496wxPython/lib/dialogs.py for more details. 4497 4498 4499 45002.3.4.2 4501------- 4502* 21-Dec-2002 4503 4504Various bug fixes. 4505 4506 4507 45082.3.4.1 4509------- 4510* 18-Dec-2002 4511 4512Updated XRCed and wxTimeCtrl contribs. 4513 4514Show a couple new wxGrid features in the demo. 4515 4516Several bug fixes in wxWindows. 4517 4518Added wxHtmlFilter. 4519 4520wxASSERT and related C++ runtime diagnostics are now converted to 4521Python exceptions. When an assert happens a wxPyAssertionError 4522(which derives from AssertionError) exception is created and when 4523control returns back to the Python code that invoked the C++ API it 4524will be raised. The same exception restrictions are in place as 4525before, namely that exceptions can't cross from one Python layer 4526through C++ to another Python layer. That simply means that if you 4527want to catch wxPyAssertionError or any other exception that you need 4528to do it before control returns to C++ at the end of your event 4529handler or callback code. There is some test code in demo/wxButton.py 4530you can use to play with this new feature. 4531 4532Added some methods to wxApp (SetAssertMode and GetAssertMode) that let 4533you control how C++ assertions are processed. Valid modes are: 4534wxPYAPP_ASSERT_SUPPRESS, wxPYAPP_ASSERT_EXCEPTION, and 4535wxPYAPP_ASSERT_DIALOG. Using _SUPPRESS will give you behavior like 4536the old "final" builds and the assert will be ignored, _EXCEPTION is 4537the new default described above, and _DIALOG is like the default in 45382.3.3.1 and prior "hybrid" builds. You can also combine _EXCEPTION 4539and _DIALOG if you wish, although I don't know why you would. 4540 4541You can now overload OnInitGui, OnExit and OnAssert in your classes 4542derived from wxApp. 4543 4544Added GetSelectedCells, GetSelectionBlockTopLeft, 4545GetSelectionBlockBottomRight, GetSelectedRows, GetSelectedCols nethods 4546to wxGrid. 4547 4548Added Python == and != operators for some basic classes 4549 4550Fixed the Python wrappers for wxInputStream so they no longer block 4551when reading from a wxProcess on wxGTK. They now work more or less as 4552they did before 2.3.3.1 but the dual meaning of eof() has been 4553removed. There is now a CanRead() method that lets you know if there 4554is data waiting to be read from the pipe. 4555 4556Fixed method name clash in wxIEHtmlWin, renamed Refresh to RefreshPage. 4557 4558Added Throbber from Cliff Wells to the library and the demo. 4559 4560Windows installer prompts to uninstall old version first. 4561 4562Added wxPython.lib.evtmgr by Robb Shecter, which is an easier, more 4563"Pythonic" and more OO method of registering handlers for wxWindows 4564events using the Publish/Subscribe pattern. 4565 4566Added wxPython.lib.popupctl by Gerrit van Dyk which is a combobox-like 4567gizmo for poping up arbitrary controls. It is currently using 4568wxDialog because of some issues with wxPopupWindow... 4569 4570Added wxPython.lib.gridmovers by Gerrit van Dyk which facilitates the 4571dragging of columns and/or rows in a wxGrid. 4572 4573Added wxPython.lib.multisash by Gerrit van Dyk which is a nice 4574implementation of allowing the user to split a window any number of 4575times either horizontally or vertically, and to close the split off 4576windows when desired. 4577 4578Added helpviewer tool that displays HTML books similarly to how MS 4579HTMLHelp viewer does. Changed how the wxPythonDocs tarball is built 4580and added a script to launch the doc viewer. 4581 4582 4583 4584 45852.3.3.1 4586------- 4587* 19-Sep-2002 4588 4589Added wxSplashScreen. 4590 4591Added wxGenericDirCtrl. 4592 4593Added wxMultiChoiceDialog. 4594 4595The calltip window and autocomplete window in wxSTC will now use a 4596wxPopupWindow if available on the platform (and functioning correctly) 4597so they can extend beyond the client area of the STC if needed. 4598 4599Finished wrapping and providing typemaps for wxInputStream and also 4600added the stream ctor and other methods for wxImage so images can now 4601be loaded from any Python "file-like" object. 4602 4603Changed the img2py tool to use PNG instead of XPM for embedding image 4604data in Python source code, and the generated code now uses streams to 4605convert the image data to wxImage, wxBitmap, or wxIcon. 4606 4607Added the wxPython.lib.rcsizer module which contains RowColSizer. 4608This sizer is based on code from Niki Spahiev and lets you specify a 4609row and column for each item, as well as optional column or row 4610spanning. Cells with no item assigned to it are just left blank. 4611Stretchable rows or columns are specified and work the same as in 4612wxFlexGridSizer. 4613 4614Updated XRCed from Roman Rolinsky 4615 4616Added wxBufferedDC. 4617 4618Upgraded wxSTC from Scintilla 1.40 to Scintilla 1.45, and then again 4619to version 1.47, and one more time to 1.48! <wink> 4620 4621UNICODE! 4622 wxWindows/wxPython can be compiled with unicode support enabled or 4623 disabled. Previous to wxPython 2.3.3 non-unicode mode was always 4624 used. Starting with 2.3.3 either mode is supported, but only if 4625 it is also available in wxWindows on the platform. Currently 4626 wxWindows only supports unicode on MS Windows platforms, but with 4627 the recent release of GTK+ 2.0 it is only a matter of time until 4628 it can be done on wxGTK (Linux and other unixes) as well. 4629 4630 Unicode works best on platforms in the NT branch of the Windows 4631 family tree (NT, win2k, XP) but it is now also possible to use the 4632 same unicode binaries on win95/98/ME platforms as well! This is 4633 done by using a special library and DLL with the application 4634 called MSLU, (Microsoft Layer for Unicode). It simply gets out of 4635 the way if the app is run on an NT box, otherwise if run on a 4636 win9x box it loads a special DLL that provides the unicode 4637 versions of the windows API. So far I have not been able to get 4638 this to work perfectly on win9x. Most things work fine but 4639 wxTaskBarIcon for example will cause a crash if used with the 4640 unicode build on win95. 4641 4642 So how do you use it? It's very simple. When unicode is enabled, 4643 then all functions and methods in wxPython that return a wxString 4644 from the C++ function will return a Python unicode object, and 4645 parameters to C++ functions/methods that expect a wxString can 4646 accept either a Python string or unicode object. If a string 4647 object is passed then it will be decoded into unicode using the 4648 converter pointed to by wxConvCurrent, which will use the default 4649 system encoding. If you need to use a string in some other 4650 encoding then you should convert it to unicode using the Python 4651 codecs first and then pass the unicode string to the wxPython 4652 method. 4653 4654Added wxListCtrlAutoWidthMixin from Erik Westra. 4655 4656Added wxIconBundle and wxTopLevelWindow.SetIcons. 4657 4658Added wxLocale and wxEncodingConverter. 4659 4660A little black magic... When the C++ object (for a window or 4661whatever) is deleted there is no way to force the Python shadow object 4662to also be destroyed and clean up all references to it. This leads to 4663crashes if the shadow object tries to call a method with the old C++ 4664pointer. The black magic I've done is to replace the __class__ in the 4665Python instance object with a class that raises an exception whenever 4666a method call (or other attribute access) is attempted. This works 4667for any class that is OOR aware. 4668 4669Added OOR support for wxGridCellRenderer, wxGridCellEditor, 4670wxGridCellAttr, wxGridCellAttrProvider, wxGridTableBase and their 4671derived classes. 4672 4673Added wxImage.GetDataBuffer which returns an in-place edit buffer of 4674the image data. (Patch #546009) 4675 4676Added a sample that shows how to embed wxPython in a wxWindows C++ 4677application. 4678 4679Added wxPyWindow, wxPyPanel and wxPyControl which are just like their 4680wx counterparts except they allow some of the more common C++ virtual 4681methods to be overridden in Python derived classes. The methods 4682supported are: 4683 4684- DoMoveWindow 4685- DoSetSize 4686- DoSetClientSize 4687- DoSetVirtualSize 4688- DoGetSize 4689- DoGetClientSize 4690- DoGetPosition 4691- DoGetVirtualSize 4692- DoGetBestSize 4693- InitDialog 4694- TransferDataFromWindow 4695- TransferDataToWindow 4696- Validate 4697- AcceptsFocus 4698- AcceptsFocusFromKeyboard 4699- GetMaxSize 4700- AddChild 4701- RemoveChild 4702 4703If there are other methods that you think should be supported 4704please let me know. 4705 4706Changed wxGenButton to derive from wxPyControl and overload 4707DoGetBestSize and AcceptsFocus. 4708 4709Added wxArtProvider. 4710 4711Added wxCallAfter which is a helper function that registers a function 4712(or any callable Python object) to be called once the next time there 4713are no pending events. This is useful for when you need to do 4714something but it can't be done during the current event handler. The 4715implementation is very simple, see wxPython/wx.py. 4716 4717Fixed a boatload of reference leaks. 4718 4719Added a demo of using a sizer in a wxScrolledWindow, in effect 4720creating a ScrolledPanel. 4721 4722Added a sample to the demo that shows how to use radio menu items, and 4723other menu stuff. 4724 4725Added wxIEHtmlWin. This is essentially the same as using IE with the 4726ActiveXWrapper already in the library, but it is implemented all in 4727C++ and therefore does not need any of the modules from win32all and 4728so it is less fragile in the face of changes. 4729 4730Fixed the ActiveXWrapper problem. Looks like when the win32com 4731modules make a "callback" that they (incorrectly, IMHO) allocate a 4732transient thread state structure. Since wxPython is now saving 4733tstates for it's own callbacks it ended up using garbage after 4734win32com got rid of the temporary tstate... 4735 4736Added a generic static text control to wxPython.lib.stattext. This is 4737so things like Boa and PythonCard can have a static text that can 4738respond to mouse events and etc. 4739 4740Changed the wxDateTime.Parse* methods to return an int that will be -1 4741on failure, and the index where parsing stopped otherwise. 4742 4743Moved tools to be a Python package in wxPython.tools, added scripts to 4744import and launch each tool. This will let you import and use the 4745tools in your own scripts or apps as needed. On Linux and OS X the 4746tool scripts are installed to {prefix}/bin so you should be able to 4747easily launch them from the command line. For example, PyCrust can be 4748started with just the "pycrust" command. 4749 4750Added a sample to the demo that catches various key events and 4751displays the details of the event. 4752 4753Added wxWizard, wxWizardPage, wxWizardPageSimple and wxPyWizardPage. 4754 4755Added wxXmlResourceHandler which allows you to create custom handlers 4756for nonstandard class types in XRC resources. See the demo for an 4757example. 4758 4759Added wxPython.lib.mixins.rubberband module from Robb Shecter. 4760 4761Added wxTimeCtrl from Will Sadkin. 4762 4763 4764 4765 47662.3.2.1 4767------- 4768* 20-Dec-2001 4769 4770Changed (again) how the Python global interpreter lock is handled as 4771well as the Python thread state. This time it works on SMP machines 4772without barfing and is also still compatible with Python debuggers. 4773 4774Added some patches from library contributors. 4775 4776 4777 47782.3.2 4779----- 4780* 11-Dec-2001 4781 4782Added EVT_HELP, EVT_HELP_RANGE, EVT_DETAILED_HELP, 4783EVT_DETAILED_HELP_RANGE, EVT_CONTEXT_MENU, wxHelpEvent, 4784wxContextMenuEvent, wxContextHelp, wxContextHelpButton, wxTipWindow, 4785and a demo to show them in action. 4786 4787Deprecated PyShell and PyShellWindow, added a snapshot of PyCrust (see 4788http://sourceforge.net/projects/pycrust/. ) 4789 4790Added the new virtual list capabilities to wxListCtrl. 4791 4792Added a wxSTC style editor from Riaan Booysen to the sample apps. 4793 4794Added XRCed to the wxPython Tools directory, contributed by Roman 4795Rolinsky. 4796 4797Added a new "constructor" to most of the window classes that calls the 4798default C++ constructor, (the one with no parameters) and also added the 4799corresponding Create(...) method. This allows you to do a 2-step 4800creation of windows which is sometimes required for doing things such 4801as setting extended style flags before the window is created, or for 4802passing the object to the XRC resource system to be created from the 4803resource. The name of the new "constructor" is the original name of 4804the class with a "Pre" in it. For example, wxPreWindow, wxPreFrame, 4805etc. 4806 4807Updated to version 1.40 of Scintilla and updated wxStyledTextCtrl 4808accordingly. While doing this update I dropped the wxLB_SORT style 4809from the wxListBox created for the AutoComplete functionality. This 4810means that you will have to sort the keyword lists yourself, but you 4811are free to do case sensitive or case insensitive sorts and set the 4812wxSTC flag accordingly. 4813 4814Updated wxColumnSorterMixin to also be able to place sort icons on the 4815column headers, and updated the wxListCtrl demo to show it off by 4816using wxColumnSorterMixin. 4817 4818Added wxGenBitmapTextButton, TablePrint, etc. contribs from Lorne White. 4819 4820Added wxNativeFontInfo and wxFontMapper. 4821 4822Added pySketch to the samples. 4823 4824Significantly changed how the Python interpreter lock and thread state 4825are managed, which should fix the problem of running on a 4826multi-processor machine. 4827 4828Added wxPyLog so log targets can be created in Python to handle log 4829messages however is wished. See demo/Main.py for an example. 4830 4831Added wxFindReplaceDialog. 4832 4833The second phase of OOR is implemented for wxEvtHandler, wxSizer, 4834wxShape and derived classes. This means that functions and methods 4835that return an object derived from wxEvtHandler that was originally 4836created in Python, will return the original Python object (if it still 4837exists) instead of letting SWIG wrap a new shadow object around the 4838original C++ pointer. 4839 4840Added some optimization methods to wxDC: GetBoundingBox, DrawLineList, 4841DrawPointList. 4842 4843Added a set of sophisticated Error Dialogs from Chris Fama. 4844 4845Added wxRightTextCtrl from Josu Oyanguren to wxPython.lib for aligning 4846text in a wxTextCtrl to the right side. 4847 4848Added wxURLDataObject and an example showing drag and drop of URLs to 4849and from web browsers. It's still not 100% bullet-proof for all types 4850of browsers, but it works for the majority of cases with the popular 4851browsers on Windows. On wxGTK it seems that only Netscape 4.x works, 4852if anybody has any suggestions about this please bring it up on the 4853wx-dev list. 4854 4855Added wxStopWatch. 4856 4857Added wxMimeTypesManager and wxFileType. 4858 4859Passing None for the handler parameter to one of the EVT_** functions 4860will now Disconnect the event. 4861 4862Added wxPopupWindow and wxPopupTransientWindow. 4863 4864Added wxFileHistory. 4865 4866Added wxDynamicSashWindow, which allows you to endlessly split windows 4867by dragging a little tab next to the scrollbars. Added a demo to show 4868this and also the ability of multiple wxStyledTextCtrls to share the 4869same document. 4870 4871Added wxEditableListBox gizmo. 4872 4873Updated wxEditor with lots of enhancements from Steve Howell and Adam 4874Feuer. 4875 4876Added the "SplitTree gizmos" which are a collection of classes that 4877were designed to operate together and provide a tree control with 4878additional columns for each item. The classes are 4879wxRemotelyScrolledTreeCtrl, wxTreeCompanionWindow, 4880wxThinSplitterWindow, and wxSplitterScrolledWindow, some of which may 4881also be useful by themselves. 4882 4883Added wxDllWidget from Vaclav Slavik which allows wx widgets derived 4884from wxWindow to be loaded from a C++ .dll (or .so) and be used in a 4885wxPython program, without the widget having to be SWIGged first. The 4886visible API of the widget is limited to wxWindow methods plus a 4887SendCommand method, but it is still quite powerful. See 4888wxPython/contrib/dllwidget and wxPython/demo/dllwidget for more 4889details. 4890 4891 4892 4893 48942.3.1 4895----- 4896* 10-Jul-2001 4897 4898Added EVT_GRID_EDITOR_CREATED and wxGridEditorCreatedEvent so the user 4899code can get access to the edit control when it is created, (to push 4900on a custom event handler for example.) 4901 4902Added wxTextAttr class and SetStyle, SetDefaultStyle and 4903GetDefaultStyle methods to wxTextCtrl. 4904 4905Added ability to use xml resource files. Still need to add ability to 4906subclass wxXmlResourceHandler, etc... 4907 4908Added wxGridAutoEditMixin to the mixins library package. 4909 4910Made ColourSelect be derived from wxButton. 4911 4912Fixed img2py to work correctly with Python 2.1. 4913 4914Added enhanced wxVTKRenderWindow by Prabhu Ramachandran 4915 4916 4917 49182.3.0 4919----- 4920* 22-May-2001 4921 4922Removed initial startup dependency on the OpenGL DLLs so only the 4923glcanvasc.pyd depends on them, (on wxMSW.) 4924 4925Changed wxFont, wxPen, wxBrush to not implicitly use the 4926wxThe[Font|Pen|Brush]List objects behind the scenes, but to use normal 4927ctor and dtors. 4928 4929Exposed the wxThe[Font|Pen|Brush]List to wxPython. 4930 4931Also added wxTheColourDatabase and added a library module (in the 4932wxPython.lib.colourdb module) to load LOTS more colour names into the 4933colour database. 4934 4935Added wxWakeUpMainThread, wxMutexGuiEnter, wxMutexGuiLeave, 4936wxMutexGuiLocker and wxThread_IsMain to assist with dealing with GUI 4937access from non-GUI threads. 4938 4939wxPyOnDemandOutputWindow is now (more) thread safe if non-GUI threads 4940use print, sys.stdout.write, etc. 4941 4942Added CreateTextSizer and CreateButtonSizer to wxDialog 4943 4944Added wxPython/lib/infoframe.py from Chris Fama. It contains a class 4945that can be used in place of wxPyOnDemandOutputWindow. 4946 4947Added colourselect.py, imagebrowser.py and an updated calendar.py to 4948wxPython/lib from Lorne White. 4949 4950Added patch to wxPoint_LIST_helper from Tim Hochberg that should make 4951it gobs faster in certain situations. 4952 4953Added tools that will take an image file in a wx supported format and 4954convert it to data embedded in a Python source file. The image is 4955converted to XPM format which is essentially a list of strings 4956containing info about each pixel. The image's transparency mask is 4957included, if there is one, or a mask can be added if a mask colour is 4958specified on the command line. It is then pickled and optionally 4959compressed and written to a Python source file along with functions to 4960convert it to either a wxBitmap or a wxImage. See 4961wxPython/demo/images.py for examples, and wxPython/Tools/img2py.py for 4962the implementation. 4963 4964Fixed wxStyledTextCtrl to be much faster on wxGTK. There was some 4965experimental code that got left in place that ended up causing way too 4966many refreshes. 4967 4968A couple more hacks in my_distutils.py so wxPython can be built with 4969the distutils that comes with Python 2.1. 4970 4971Added a ton of missing methods for wxPrintData. 4972 4973Switched to InnoSetup for MSW distributions. 4974 4975Added wxToggleButton. 4976 4977Fixed bug that prevented wxTreeCtrl.OnCompareItems from being called. 4978 4979Added some methods to wxGrid: 4980 GetCellHighlightPenWidth 4981 GetCellHighlightROPenWidth 4982 SetCellHighlightPenWidth 4983 SetCellHighlightROPenWidth 4984 GetGridWindow 4985 GetGridRowLabelWindow 4986 GetGridColLabelWindow 4987 GetGridCornerLabelWindow 4988 4989Added wxGetClientDisplayRect which on wxMSW returns a wxRect 4990representing the area on screen not occupied by the taskbar and such. 4991On other platforms it is equivallent to wxGetDisplaySize. 4992 4993OOR: 4994 Implemented the first phase of OOR (Original Object Return). See 4995 the text in the demo for more details of what this means, but in a 4996 nutshell methods such as wxWindow.GetParent or FindWindowById will 4997 now return a shadow object of the proper type if it can. By 4998 "proper type" I mean that if the wxWindow pointer returned from 4999 FindWindowById really points to a wxButton then the Python object 5000 constructed will be of a wxButtonPtr class instead of wxWindowPtr 5001 as before. This should reduce or eliminiate the need for 5002 wxPyTypeCast. (Woo Hoo!) The objects returned are still not the 5003 original Python object, but that is the next step. (Although it 5004 will probably only work on Python 2.1 and beyond because it will 5005 use weak references.) 5006 5007 This first phase of the OOR plan is fairly significant and has 5008 required a lot of changes all over wxPython, most of which should 5009 be transparent to you, however I'm not 100% sure that it didn't 5010 introduce any new bugs that are hiding somewhere and didn't get 5011 stomped on during my testing. So please be sure to test everything 5012 thoroughly when you install this version and be sure to report any 5013 object-type related oddities to me. 5014 5015 5016There is now a wxObject class that most other classes derive from like 5017in C++, but the methods provided don't really match but are wxPython 5018specific. It could have been added long ago but OOR required it so it 5019finally got done. 5020 5021Finally added wxPyLineShape.GetLineControlPoints, which has been on my 5022list for a while. The above OOR modification made this easier. 5023 5024Fixed the __cmp__ methods for wxPoint and others. 5025 5026Added wxWave. 5027 5028Added the wxPython.lib.mixins package to the library, it is where 5029useful mix-in classes can be placed. Currently there is one to help 5030make the columns in a wxListCtrl sortable, and the MagicIMageList from 5031Mike Fletcher. If you have any custom code that can be factored out 5032of existing classes into a mix-in that would be useful to others 5033please send it to me for inclusion in this package. 5034 5035Added a few little sample applications to help newbies to get started 5036by having smaller functional apps to play with. They can be found in 5037wxPython/samples. 5038 5039 5040 5041 50422.2.7 5043----- 5044* 19-Jun-2001 5045 5046No changes happened in the Python wrappers for this release, only 5047changes and fixes in the wxWindows library. 5048 5049 5050 50512.2.5 5052----- 5053* 30-Jan-2001 5054 5055New typemaps for wxString when compiling for Python 2.0 and beyond 5056that allow Unicode objects to be passed as well as String objects. If 5057a Unicode object is passed PyString_AsStringAndSize is used to convert 5058it to a wxString using the default encoding. 5059 5060Fixed the generic buttons so tool tips work for them. 5061 5062Fixed a bug in the demo's tree control. 5063 5064Added a listbox to the listbox demo that shows how to find items with 5065a matching prefix as keys are typed. 5066 5067Added code to the wxListCtrl demo to show how to get text from a 5068column in report mode. 5069 5070Added code to the toolbar demo to clear the long help from the status 5071bar after 2 seconds. 5072 5073Added wxJoystick. 5074 5075Fixed wxTimer so it can be used as described in the docs, either with 5076a Notify method in a subclass, or sending an event to a wxEvtHandler 5077object, (usually a window.) 5078 5079Added wxNotifyEvent.Allow() 5080 5081Fixed GOBS of reference leaks. 5082 5083Massive code changes and cleanup to allow wxPython to be split into 5084multiple extension modules again. A Python CObject is used to allow 5085the "export" of SWIG functions and other common helper functions from 5086the wxc module to other modules, even if they are in separate shared 5087libraries. Should also be usable from 3rd party code, just include 5088wxPython/src/export.h 5089 5090Changed the default setup so the following are built as separate 5091extension modules: calendar, glcanvas, grid, html, ogl, stc, and 5092utils. Will probably add more later. 5093 5094Changed the wxPrinterDC to use the new constructor taking a 5095wxPrintData object. The old ctor is still there using the 5096wxPrinterDC2 name. 5097 5098Added wxPython.lib.anchors.py from Riaan Booysen. It contains a class 5099that implements Delphi's Anchors with wxLayoutConstraints. 5100 5101Added wxPython.lib.fancytext from Timothy Hochberg. 5102 5103Changed the GenericButtons to send their event in idle time, so the 5104mouse won't be captured when the event handler is called. 5105 5106Added wxPython.lib.rpcMixin from Greg Landrum, although it's not 5107integrated with the demo yet. It allows a wxPython GUI to be an 5108XML-RPC server. 5109 5110 5111 5112New in 2.2.2 5113------------ 5114* 26-Oct-2000 5115 5116Significantly changed how the wxStyledtextCtrl code that wraps 5117Scintilla is implemented. Most of it is now automatically generated 5118from an interface definition file provided by Scintilla. This means 5119that it will be much easier to stay in sync with new Scintilla 5120releases, but also means that some of the method and identifier names 5121have changed. See wxPython/demo/data/stc.h for a copy of the C++ 5122interface from which the Python interface is generated. There is now 5123some inline documentation in that file that should really help explain 5124how things work. 5125 5126I am now using the Python Distutils to build wxPython and to make some 5127of the distribution files. (See http://www.python.org/sigs/distutils-sig/) 5128This means no more messing with my kludgy build.py/Makefile hack, 5129builds will be more consistent with other Python extensions that also 5130use Distutils, and will hopefully make wxPython easier to build for 5131platforms where there have been troubles before. If you are building 5132wxPython for Python 1.5.2 or for 1.6, then you will need to get and 5133install version 1.0 of Distutils from the website above. If you are 5134using Python 2.0 then you already have it. 5135 5136Added wxInputStream and the wxFileSystem family of classes, 5137contributed by Joerg Baumann. 5138 5139Added wxProcess and support for it to wxExecute. wxProcess lets you 5140get notified when an asyncronous child process terminates, and also to 5141get input/output streams for the child process's stdout, stderr and 5142stdin. 5143 5144Removed the old python sizers. 5145 5146Added __add__, __sub__ and __cmp__ (equality check only) for wxPoint 5147and wxRealPoint. 5148 5149Changed the build to make one big extension module instead of one for 5150the core and each contrib. This allowed me to do away with the 5151libwxPyHelpers.so on unix systems. 5152 5153Lots of little fixes here and there. 5154 5155Some hacks on wxGTK to try and make the AutoComplete listbox in the 5156wxStyledTextCtrl to behave better. It's still not as nice as on 5157wxMSW, but at least it's a bit more usable now. 5158 5159 5160 5161 5162New in 2.2.1 5163------------ 5164* 22-Aug-2000 5165 5166Various tweaks, fixes, missing methods, etc. 5167 5168Added example use of wxTaskBarIcon to the demo. 5169 5170 5171 5172New in 2.2.0 5173------------ 5174* 17-Jul-2000 5175 5176Added wxLog and friends. 5177 5178Added wxFrame.ShowFullScreen for MSW. 5179 5180Added PyShellWindow to the wxPython.lib package. 5181 5182 5183 5184New in 2.1.16 5185------------- 5186* 12-Jun-2000 5187 5188Added an attribute named labelDelta to the generic buttons that 5189specifies how far to offset the label when the button is in the 5190depressed state. 5191 5192Added wxTipProvider and friends. See the demo for an example. 5193 5194wxGrid can now change the cell highlight colour. 5195 5196Added wxDragImage. 5197 5198Fixed printing on wxGTK. 5199 5200Added wxDateTime, wxTimeSpan, and wxDateSpan to wxPython.utils. 5201 5202Added wxCalendarCtrl. 5203 5204WARNING: A while back I asked what should be done about the Magic 5205Method Names. (Methods that are automatically turned into event 5206handlers by virtue of their name.) The consensus was that it is more 5207confusing to have them than to try and expand them to have greater 5208coverage. I am finally getting around to removing the code that 5209generates the event binding. This means that if you are using any of 5210the following method names without a EVT_* call that you need to 5211modify your code to add the EVT_* to hook the event to the method. 5212 5213- OnChar 5214- OnSize 5215- OnEraseBackground 5216- OnSysColourChanged 5217- OnInitDialog 5218- OnPaint 5219- OnIdle 5220- OnActivate 5221- OnMenuHighlight 5222- OnCloseWindow 5223- OnScroll 5224 5225Added wxSpinCtrl. 5226 5227 5228 5229 5230New in 2.1.15 5231------------- 5232* 25-Apr-2000 5233 5234Fixed wxTreeCtrl.HitTest to return both the tree item as well as the 5235flags that clairify where the click was in relation to the item. 5236 5237Fixed thread state problem in wxTreeCtrl.GetBoundingBox and 5238GetSelections. 5239 5240Fixed some problems in OGL. Also wxShape.SetClientData and 5241.GetClientData can now deal with Python objects. 5242 5243Added wxListCtrl.SortItems and changed the demo to show how to use it. 5244 5245Plugged a memory leak. 5246 5247Wrapped the new wxGrid and friends. The old wxGrid class is no longer 5248available. There are some incompatibilities, and unfortunately the 5249new classes are not documented yet, (however the methods are more 5250consistent with each other now so you may be able to guess pretty 5251good...) 5252 5253Updated filebrowsebutton.py and calendar.py with changes from their 5254authors. There is now a FileBrowseButtonWithHistory class (what a 5255mouthful!) and wxCalendar has printing support. 5256 5257Added ActiveXWrapper to the library, and some good demos of it too. 5258It works great for embedding a COM (a.k.a OCX, a.k.a ActiveX) control 5259in a window and calling its methods. It actually creates a new class 5260on the fly that derives from wxWindow, the COM CoClass and others 5261needed to make it all work. The resulting class can be instantiated 5262just like wxWindow, used in sizers, etc. It also responds to all COM 5263method calls, properties, etc., and if the class or a mix-in has 5264matching method names, then the COM events will be propogated back to 5265them. 5266 5267Created a typemap that allows a string to be used for parameters 5268expecting a wxColour type. The string is either a colour name as 5269defined in the wxColourDatabase, or a colour spec of the form 5270"#RRGGBB". See the wxStyledTextCtrl demo for an example. 5271 5272I almost forgot to mention the wxStyledTextCtrl! Yes, the 5273wxStyledTextCtrl is finally in wxPython!! (And the crowd goes 5274wild...) There's no documentaTion yet (the crowd boos and hisses...) 5275but I've included a very readable source file in the 5276wxPython/demo/data directory, a couple fairly good examples, and you 5277can also refer to the Scintilla documentaion at 5278http://www.scintilla.org/ScintillaDoc.html to help fill in the gaps 5279until the docs are done. (The croud murmers contentedly as the tool 5280provider smiles convincingly and removes his flame-proof suit.) 5281 5282 5283 5284 5285What's new in 2.1.13 5286-------------------- 5287* 3-Feb-2000 5288 5289Skipped a version number to match what has been released for wxGTK. 5290 5291Updated wxMVCTree and added a demo for it, also fixed layout on GTK 5292and some flicker problems. 5293 5294Added a wrapper class for the Visualization ToolKit (or VTK) in the 5295wxPython.lib.vtk module. (http://www.kitware.com/) 5296 5297Fixed wxTreeCtrl.SetItemImage and GetItemImage to recognise the new 5298"which" parameter. 5299 5300Added wxPython.lib.spashscreen from Mike Fletcher. 5301 5302Added wxPython.lib.filebrowsebutton also from Mike Fletcher. 5303 5304Renamed wxTreeCtrl.GetParent to GetItemParent to avoid a name clash 5305with wxWindow.GetParent. 5306 5307Added wxIntersectRect to compute the intersection of two wxRect's. 5308It is used like this:: 5309 5310 intersect = wxIntersectRect(rect1, rect2) 5311 5312If r1 and r2 don't intersect then None is returned, otherwise the 5313rectangle representing the intersection is returned. 5314 5315Some bug fixes for Clipboard and Drag-n-Drop. 5316 5317Rotated text!!! WooHoo! (See wxDC.DrawRotatedText()) 5318 5319Added a set of Generic Buttons to the library. These are simple 5320window classes that look and act like native buttons, but you can have 5321a bit more control over them. The bezel width can be set in addition 5322to colours, fonts, etc. There is a ToggleButton as well as Bitmap 5323versions too. They should also serve as a good example of how to 5324create your own classes derived from wxControl. 5325 5326The C++ wxToolBar classes have been redone, and so have the wxPython 5327wrappers. There have been slight modifications to some of the methods 5328but shouldn't impact anybody too much. I took the opportunity to add 5329support for setting user data on each toolbar tool. The new AddTool 5330methods look like this:: 5331 5332 def AddTool(ID, 5333 bitmap, 5334 pushedBitmap = wxNullBitmap, 5335 toggle = FALSE, 5336 clientData = NULL, 5337 shortHelpString = "", 5338 longHelpString = "") 5339 5340 def AddSimpleTool(ID, 5341 bitmap, 5342 shortHelpString = "", 5343 longHelpString = "", 5344 toggle=FALSE) 5345 5346 5347There are also corresponding InsertTool and InsertSimpleTool methods 5348that additionally take an integer position as the first parameter. 5349 5350Added a wrapper for the new PCX and TIFF ImageHandlers. 5351 5352wxRect now simulates attributes named left, right, top and bottom. 5353 5354Removed all non wx stuff from the glcanvas module since DA's PyOpenGL 5355is better and compatible with the wxGLCanvas. You can get it at 5356http://starship.python.net:9673/crew/da/Code/PyOpenGL. 5357 5358Added some missing EVT functions. 5359 5360Added Dirk Holtwic's editor classes to the wxPython.lib.editor 5361package. 5362 5363Changed all the "LIST" parameter names to "choices" to match the docs. 5364 5365More fixes for the wxFloatBar, and it now works on wxGTK even better 5366than wxMSW! (The feat is accomplished by using the wxTB_DOCKABLE 5367style flag instead of trying to float it ourselves.) 5368 5369 5370 5371 5372What's new in 2.1.11 5373-------------------- 5374* 13-Nov-1999 5375 5376Skipped a few version numbers so wxMSW, wxGTK and wxPython are all 5377syncronized. 5378 5379wxImage.SetData now makes a copy of the image data before giving it to 5380wxImage. I mistakenly thought that wxImage would copy the data 5381itself. 5382 5383Fixed wxMSW's notebook so the pages get their size set as they are 5384being added. This should remove the need for our 5385wxNotebook.ResizeChildren hack. 5386 5387wxPanels now support AutoLayout, and wxNotebooks and wxSplitterWindows 5388no longer tell their children to Layout() themselves. This will 5389probably only effect you if you have a wxWindow with AutoLayout inside 5390a notebook or splitter. If so, either change it to a wxPanel or add 5391an EVT_SIZE handler that calls Layout(). 5392 5393Fixed deadlock problem that happened when using threads. 5394 5395Added new HTML printing classes. 5396 5397Added wxWindow.GetHandle 5398 5399Apparently wxMouseEvent.Position has been deprecated in wxWindows as 5400it is no longer available by default. You can use GetPositionTuple 5401(returning a tuple with x,y) instead, or GetPosition (returning a 5402wxPoint.) 5403 5404Added wxPostEvent function that allows events to be posted and then 5405processed later. This is a thread-safe way to interact with the GUI 5406thread from other threads. 5407 5408Added Clipboard and Drag-and-Drop classes. 5409 5410Added wxFontEnumerator. 5411 5412Many updates to wxMenu, wxMenuBar. 5413 5414wxPyEvent and wxPyCommandEvent derived classes now give you the actual 5415Python object in the event handler instead of a new shadow. 5416 5417Added a Calendar widget from Lorne White to the library. 5418 5419Made some fixes to the wxFloatbar. It still has some troubles on 5420wxGTK... 5421 5422Added an MVC tree control from Bryn Keller to the library. 5423 5424 5425 5426 5427What's new in 2.1.5 5428------------------- 5429* 12-Oct-1999 5430 5431This is a quick bug-fix release to take care of a few nasties that 5432crept in at the last minute before 2.1.4 was called done. No new 5433major features. 5434 5435 5436 5437What's new in 2.1.4 5438------------------- 5439* 7-Oct-1999 5440 5441This release is NOT syncronized with a snapshot release of wxGTK or 5442wxMSW. For MSW this isn't much of a problem since you can get the 5443binaries from the web site. For other platforms you'll have to build 5444wxGTK from CVS. (See http://web.ukonline.co.uk/julian.smart/wxwin/cvs.htm) 5445To get the same set of sources from CVS that I used, checkout using 5446the wxPy-2-1-4 tag. 5447 5448Now back to what's new... 5449 5450Much more support for event-less callbacks and add-on modules. 5451 5452Created add-on module with wxOGL classes. 5453 5454Added wxWindow.GetChildren(). Be careful of this. It returns a *copy* 5455of the list of the window's children. While you are using the list if 5456anything changes in the real list (a child is deleted, etc.) then the 5457list you are holding will suddenly have window references to garbage 5458memory and your app will likely crash. But if you are careful it works 5459great! 5460 5461Added a bunch of new and missing methods to wxTreeCrtl. The 5462SortChildren method is now supported, but currently only for the 5463default sort order. 5464 5465Added typemaps for wxSize, wxPoint, wxRealPoint, and wxRect that allow 5466either the actual objects or Python sequence values to be used. For 5467example, the following are equivallent:: 5468 5469 win = wxWindow(parent, size = wxSize(100, 100)) 5470 win = wxWindow(parent, size = (100, 100)) 5471 5472Super-charged the wxHtml module. You can now create your own tag 5473handlers and also have access to the parser and cell classes. There 5474is a tag handler in the library at wxPython.lib.wxpTag that 5475understands the WXP tag and is able to place wxPython windows on HTML 5476pages. See the demo for an example. 5477 5478A bunch of the methods of wxMenuBar were previously ifdef'd out for 5479wxGTK. Added them back in since the methods exist now. 5480 5481Wrapped the wxHtmlHelpController and related classes. 5482 5483Wrapped the C++ versions of wxSizer and friends. The Python-only 5484versions are still in the library, but deprecated. (You will get a 5485warning message if you try to use them, but the warning can be 5486disabled.) The usage of the C++ versions is slightly different, and 5487the functionality of wxBorderSizer is now part of wxBoxSizer. I have 5488added a few methods to wxSizer to try and make the transition as 5489smooth as possible, I combined all Add methods into a single method 5490that handles all cases, added an AddMany method, etc. One step I did 5491not take was to make the default value of flag in the Add method be 5492wxGROW. This would have made it more backward compatible, but less 5493portable to and from wxWin C++ code. Please see the docs and demo for 5494further details. 5495 5496Added wxPyEvent and wxPyCommandEvent classes, derived from wxEvent and 5497wxCommandEvent. Each of them has SetPyData and GetPyData methods that 5498accept or return a single Python object. You can use these classes 5499directly or derive from them to create your own types of event objects 5500that can pass through the wxWindows event system without loosing their 5501Python parts (as long as they are stored with SetPyData.) Stay tuned 5502for more info and examples in future releases. 5503 5504Added wxPython.lib.grids as an example of how to derive a new sizer 5505from the C++ sizers. In this module you will find wxGridSizer and 5506wxFlexGridSizer. wxGridSizer arrainges its items in a grid in which 5507all the widths and heights are the same. wxFlexgridSizer allows 5508different widths and heights, and you can also specify rows and/or 5509columns that are growable. See the demo for a couple examples for how 5510to use them. 5511 5512Added the wxValidator class, and created a class named wxPyValidator 5513that should be used for the base class of any Python validators. See 5514the demo for an example. Please note that you MUST implement a Clone 5515method in your validator classes because of the way some things work 5516in the underlying C++ library. I did not add wxTextValidator because 5517of some issues of how it transfers data to and from a wxString, which 5518in wxPython is automatically translated to and from Python strings, so 5519there would never be a concrete wxString that would hang around long 5520enough for the validator to do its job. On the other hand, it should 5521be real easy to duplicate the functionality of wxTextValidator in a 5522pure Python class derived from wxPyValidator. 5523 5524I've finally added a feature that has been on my list for close to two 5525years! Ever wondered what that zero is for when you create your app 5526object? Well now you can leave it out or explicitly set it to a true 5527value. This value now controls what is to be done with sys.stdout and 5528sys.stderr. A false value leaves them alone, and a true value sets 5529them to an instance of wxPyOnDemandOutputWindow. (On windows the 5530default is true, on unix platforms the default is false.) This class 5531creates a frame containing a wxTextCtrl as soon as anything is written 5532to sys.stdout or sys.stderr. If you close the window it will come 5533back again the next time something is written. (You can call 5534app.RestoreStdio to turn this off.) If you would rather that the stdio be 5535redirected to a file, you can provide a second parameter to your app 5536object's constructor that is a filename. If you want to use your own 5537class instead of wxPyOnDemandOutputWindow you can either implement 5538RedirectStdio() in you app class or change the value of 5539wxApp.outputWindowClass like this:: 5540 5541 class MyApp(wxApp): 5542 outputWindowClass = MyClass 5543 5544 def OnInit(self): 5545 frame = MyFrame() 5546 self.SetTopWindow(frame) 5547 return true 5548 5549Please see the implementation of wxPyOnDemandOutputWindow and wxApp in 5550wx.py for more details. A few words of caution: if you are running 5551your app in a debugger, changing sys.stdout and sys.stderr is likely 5552to really screw things up. 5553 5554Added wxCaret. Unfortunately it's author has still not documented it 5555in the wxWindows docs... 5556 5557Some new 3rd party contributions in wxPython.lib. PyShell, in 5558shell.py is an interesting implementaion of an interactive Python 5559shell in wxWindows. floatbar.py has a class derived from wxToolBar 5560that can sense mouse drags and then reparent itself into another 5561frame. Moving the new frame close to where it came from puts the tool 5562bar back into the original parent. (Unfortunately there is currently 5563a bug in wxGTK's wxFrame.SetToolBar so the FloatBar has some 5564problems...) 5565 5566 5567 5568 5569What's new in 2.1b3 5570-------------------- 5571* 1-Sep-1999 5572 5573This release is syncronized with release 2.1 snapshot 9 of wxWindows. 5574 5575Switched to using SWIG from CVS (see http://swig.cs.uchicago.edu/cvs.html) 5576for some of the new features and such. Also they have encorporated my 5577patches so there is really no reason to stick with the current (very 5578old) release... This version of SWIG gives the following new 5579features: 5580 55811. Keyword arguments. You no longer have to specify all the 5582 parameters with defaults to a method just to specify a 5583 non-default value on the end. You can now do this instead:: 5584 5585 win = wxWindow(parent, -1, style = mystyle) 5586 55872. There is now an an equivalence between Python's None and C++'s 5588 NULL. This means that any methods that might return NULL will 5589 now return None and you can use None where wxWindows might be 5590 expecting NULL. This makes things much more snake-ish. 5591 5592 5593There is a new build system based on a new Python program instead of 5594raw makefiles. Now wxPython builds are virtually the same on MSW or 5595Unix systems. See the end of this file for new build instructions and 5596see distrib/build.py for more details. 5597 5598wxDC.Bilt now includes the useMask parameter, and has been split into 5599two different versions. wxDC.BlitXY is like what was there before and 5600takes raw coordinants and sizes, and the new wxDC.Blit is for the new 5601interface using wxPoints and a wxSize. 5602 5603 5604 5605 5606 5607What's new in 2.1b2 5608------------------- 5609* 6-Aug-1999 5610 5611Added the missing wxWindow.GetUpdateRegion() method. 5612 5613Made a new change in SWIG (update your patches everybody) that 5614provides a fix for global shadow objects that get an exception in 5615their __del__ when their extension module has already been deleted. 5616It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about 5617line 496 if you want to do it by hand. 5618 5619It is now possible to run through MainLoop more than once in any one 5620process. The cleanup that used to happen as MainLoop completed (and 5621prevented it from running again) has been delayed until the wxc module 5622is being unloaded by Python. 5623 5624I fixed a bunch of stuff in the C++ version of wxGrid so it wouldn't 5625make wxPython look bad. 5626 5627wxWindow.PopupMenu() now takes a wxPoint instead of x,y. Added 5628wxWindow.PopupMenuXY to be consistent with some other methods. 5629 5630Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace. 5631 5632You can now provide your own app.MainLoop method. See 5633wxPython/demo/demoMainLoop.py for an example and some explaination. 5634 5635Got the in-place-edit for the wxTreeCtrl fixed and added some demo 5636code to show how to use it. 5637 5638Put the wxIcon constructor back in for GTK as it now has one that 5639matches MSW's. 5640 5641Added wxGrid.GetCells 5642 5643Added wxSystemSettings static methods as functions with names like 5644wxSystemSettings_GetSystemColour. 5645 5646Removed wxPyMenu since using menu callbacks have been deprecated in 5647wxWindows. Use wxMenu and events instead. 5648 5649Added alternate wxBitmap constructor (for MSW only) as 5650 wxBitmapFromData(data, type, width, height, depth = 1) 5651 5652Added a helper function named wxPyTypeCast that can convert shadow 5653objects of one type into shadow objects of another type. (Like doing 5654a down-cast.) See the implementation in wx.py for some docs. 5655 5656Fixed wxImage GetData and SetData to properly use String objects for 5657data transfer. 5658 5659Added access methods to wxGridEvent. 5660 5661New Makefile/Setup files supporting multiple dynamic extension modules 5662for unix systems. 5663 5664Fixes for the wxGLCanvas demo to work around a strange bug in gtk. 5665 5666SWIG support routines now compiled separately instead of being bundled 5667in wx.cpp. 5668 5669 5670 5671 5672 5673What's new in 2.1b1 5674------------------- 5675* 28-Jun-1999 5676 5677Fixed wxComboBox.SetSelection so that it actually sets the selected 5678item. (Actually just removed it from wxPython and let it default to 5679wxChoice.SetSelection which was already doing the right thing.) 5680 5681Added the Printing Framework. 5682 5683Switched back to using the wxWindows DLL for the pre-built Win32 5684version. The problem was needing to reinitialize static class info 5685data after loading each extension module. 5686 5687Lots of little tweaks and additions to reflect changes to various 5688wxWindows classes. 5689 5690Fixed a bug with attaching objects to tree items. Actually was a 5691symptom of a larger problem with not obtaining the interpreter lock 5692when doing any Py_DECREFs. 5693 5694wxSizer and friends. Sizers are layout tools that manage a colection 5695of windows and sizers. Different types of sizers apply different 5696types of layout algorithms. You saw it here first! These classes are 5697not even in the wxWindows C++ library yet! 5698 5699 5700 5701What's new in 2.0b9 5702------------------- 5703* 1-May-1999 5704 5705Bug fix for ListCtrl in test4.py (Was a missing file... DSM!) 5706 5707Bug fix for occassional GPF on Win32 systems upon termination of a 5708wxPython application. 5709 5710Added wxListBox.GetSelections returning selections as a Tuple. 5711 5712Added a wxTreeItemData that is able to hold any Python object and be 5713associated with items in a wxTreeCtrl. Added test pytree.py to show 5714this feature off. 5715 5716Added wxSafeYield function. 5717 5718OpenGL Canvas can be optionally compiled in to wxPython. 5719 5720Awesome new Demo Framework for showing off wxPython and for learning 5721how it all works. 5722 5723The pre-built Win32 version is no longer distributing the wxWindows 5724DLL. It is statically linked with the wxWindows library instead. 5725 5726Added a couple missing items from the docs. 5727 5728Added wxImage, wxImageHandler, wxPNGHandler, wxJPEGHandler, 5729wxGIFHandler and wxBMPHandler. 5730 5731Added new methods to wxTextCtrl. 5732 5733Fixed some problems with how SWIG was wrapping some wxTreeCtrl 5734methods. 5735 5736 5737 5738What's new in 2.0b8 5739------------------- 5740* 28-Mar-1999 5741 5742Support for using Python threads in wxPython apps. 5743 5744Several missing methods from various classes. 5745 5746Various bug fixes. 5747 5748 5749 5750What's new in 2.0b7 5751------------------- 5752* 15-Mar-1999 5753 5754Added DLG_PNT and DLG_SZE convienience methods to wxWindow class. 5755 5756Added missing constructor and other methods for wxMenuItem. 5757 5758 5759 5760What's new in 2.0b6 5761------------------- 5762* 4-Mar-1999 5763 5764Just a quickie update to fix the self-installer to be compatible with 5765Python 1.5.2b2's Registry settings. 5766 5767 5768What's new in 2.0b5 5769------------------- 5770* 25-Feb-1999 5771 5772Well obviously the numbering scheme has changed. I did this to 5773reflect the fact that this truly is the second major revision of 5774wxPython, (well the third actually if you count the one I did for 5775wxWindows 1.68 and then threw away...) and also that it is associated 5776with the 2.0 version of wxWindows. 5777 5778I have finally started documenting wxPython. There are several pages 5779in the wxWindows documentation tree specifically about wxPython, and I 5780have added notes within the class references about where and how wxPython 5781diverges from wxWindows. 5782 5783Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a 5784window handle. If you can get the window handle into the python code, 5785it should just work... More news on this later. 5786 5787Added wxImageList, wxToolTip. 5788 5789Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the 5790wxRegConfig class. 5791 5792As usual, some bug fixes, tweaks, etc. 5793 5794 5795 5796What's new in 0.5.3 5797------------------- 5798* 30-Jan-1999 5799 5800Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. 5801 5802Various cleanup, tweaks, minor additions, etc. to maintain 5803compatibility with the current wxWindows. 5804 5805 5806 5807What's new in 0.5.0 5808------------------- 5809Changed the import semantics from ``"from wxPython import *"`` to 5810``"from wxPython.wx import *"`` This is for people who are worried about 5811namespace pollution, they can use "from wxPython import wx" and then 5812prefix all the wxPython identifiers with "wx." 5813 5814Added wxTaskbarIcon for wxMSW. 5815 5816Made the events work for wxGrid. 5817 5818Added wxConfig. 5819 5820Added wxMiniFrame for wxGTK. 5821 5822Changed many of the args and return values that were pointers to gdi 5823objects to references to reflect changes in the wxWindows API. 5824 5825Other assorted fixes and additions. 5826 5827 5828 5829 5830What's new in 0.4.2 5831------------------- 5832* 21-Oct-1998 5833 5834wxPython on wxGTK works!!! Both dynamic and static on Linux and 5835static on Solaris have been tested. Many thanks go to Harm van der 5836Heijden for his astute detective work on tracking down a nasty DECREF 5837bug. Okay so I have to confess that it was just a DSM (Dumb Stupid 5838Mistake) on my part but it was nasty none the less because the 5839behavior was so different on different platforms. 5840 5841The dynamically loaded module on Solaris is still segfaulting, so it 5842must have been a different issue all along... 5843 5844 5845 5846What's New in 0.4 5847----------------- 5848* 2-Oct-1998 5849 58501. Worked on wxGTK compatibility. It is partially working. On a 5851Solaris/Sparc box wxPython is working but only when it is statically 5852linked with the Python interpreter. When built as a dynamically loaded 5853extension module, things start acting weirdly and it soon seg-faults. 5854And on Linux both the statically linked and the dynamically linked 5855version segfault shortly after starting up. 5856 58572. Added Toolbar, StatusBar and SplitterWindow classes. 5858 58593. Various bug fixes, enhancements, etc. 5860 5861 5862 5863 5864wxPython 0.3 5865------------ 5866* 9-Aug-1998 5867 5868The first "modern" version of wxPython. See https://wxpython.org/pages/history/ 5869 5870 5871.. -*- coding: utf-8 -*- 5872