X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b37c7e1dcdad16c20d9800d2abaf53cc6b653a64..9b4e3f352b36dee39d7e451a6c9db90862f5563e:/wxPython/CHANGES.txt?ds=sidebyside diff --git a/wxPython/CHANGES.txt b/wxPython/CHANGES.txt index 4cfcb16f19..eefa6256aa 100644 --- a/wxPython/CHANGES.txt +++ b/wxPython/CHANGES.txt @@ -2,7 +2,192 @@ CHANGES.txt for wxPython ---------------------------------------------------------------------- -2.3.2 (pre) +2.3.3 +----- +Added wxSplashScreen. + +Added wxGenericDirCtrl. + +Added wxMultiChoiceDialog. + +The calltip window and autocomplete window in wxSTC will now use a +wxPopupWindow if available on the platform (and functioning correctly) +so they can extend beyond the client area of the STC if needed. + +Finished wrapping and providing typemaps for wxInputStream and also +added the stream ctor and other methods for wxImage so images can now +be loaded from any Python "file-like" object. + +Changed the img2py tool to use PNG instead of XPM for embedding image +data in Python source code, and the generated code now uses streams to +convert the image data to wxImage, wxBitmap, or wxIcon. + +Added the wxPython.lib.rcsizer module which contains RowColSizer. +This sizer is based on code from Niki Spahiev and lets you specify a +row and column for each item, as well as optional column or row +spanning. Cells with no item assigned to it are just left blank. +Stretchable rows or columns are specified and work the same as in +wxFlexGridSizer. + +Updated XRCed from Roman Rolinsky + +Added wxBufferedDC. + +Upgraded wxSTC from Scintilla 1.40 to Scintilla 1.45, and then again +to version 1.47, and one more time to 1.48! + +UNICODE! + wxWindows/wxPython can be compiled with unicode support enabled or + disabled. Previous to wxPython 2.3.3 non-unicode mode was always + used. Starting with 2.3.3 either mode is supported, but only if + it is also available in wxWindows on the platform. Currently + wxWindows only supports unicode on MS Windows platforms, but with + the recent release of GTK+ 2.0 it is only a matter of time until + it can be done on wxGTK (Linux and other unixes) as well. + + Unicode works best on platforms in the NT branch of the Windows + family tree (NT, win2k, XP) but it is now also possible to use the + same unicode binaries on win95/98/ME platforms as well! This is + done by using a special library and DLL with the application + called MSLU, (Microsoft Layer for Unicode). It simply gets out of + the way if the app is run on an NT box, otherwise if run on a + win9x box it loads a special DLL that provides the unicode + versions of the windows API. So far I have not been able to get + this to work perfectly on win9x. Most things work fine but + wxTaskBarIcon for example will cause a crash if used with the + unicode build on win95. + + So how do you use it? It's very simple. When unicode is enabled, + then all functions and methods in wxPython that return a wxString + from the C++ function will return a Python unicode object, and + parameters to C++ functions/methods that expect a wxString can + accept either a Python string or unicode object. If a string + object is passed then it will be decoded into unicode using the + converter pointed to by wxConvCurrent, which will use the default + system encoding. If you need to use a string in some other + encoding then you should convert it to unicode using the Python + codecs first and then pass the unicode string to the wxPython + method. + +Added wxListCtrlAutoWidthMixin from Erik Westra. + +Added wxIconBundle and wxTopLevelWindow.SetIcons. + +Added wxLocale and wxEncodingConverter. + +A little black magic... When the C++ object (for a window or +whatever) is deleted there is no way to force the Python shadow object +to also be destroyed and clean up all references to it. This leads to +crashes if the shadow object tries to call a method with the old C++ +pointer. The black magic I've done is to replace the __class__ in the +Python instance object with a class that raises an exception whenever +a method call (or other attribute access) is attempted. This works +for any class that is OOR aware. + +Added OOR support for wxGridCellRenderer, wxGridCellEditor, +wxGridCellAttr, wxGridCellAttrProvider, wxGridTableBase and their +derived classes. + +Added wxImage.GetDataBuffer which returns an in-place edit buffer of +the image data. (Patch #546009) + +Added a sample that shows how to embed wxPython in a wxWindows C++ +application. + +Added wxPyWindow, wxPyPanel and wxPyControl which are just like their +wx counterparts except they allow some of the more common C++ virtual +methods to be overridden in Python derived classes. The methods +supported are: + + DoMoveWindow + DoSetSize + DoSetClientSize + DoSetVirtualSize + DoGetSize + DoGetClientSize + DoGetPosition + DoGetVirtualSize + DoGetBestSize + InitDialog + TransferDataFromWindow + TransferDataToWindow + Validate + AcceptsFocus + AcceptsFocusFromKeyboard + GetMaxSize + AddChild + RemoveChild + + If there are other methods that you think should be supported + please let me know. + +Changed wxGenButton to derive from wxPyControl and overload +DoGetBestSize and AcceptsFocus. + +Added wxArtProvider. + +Added wxCallAfter which is a helper function that registers a function +(or any callable Python object) to be called once the next time there +are no pending events. This is useful for when you need to do +something but it can't be done during the current event handler. The +implementation is very simple, see wxPython/wx.py. + +Fixed a boatload of reference leaks. + +Added a demo of using a sizer in a wxScrolledWindow, in effect +creating a ScrolledPanel. + +Added a sample to the demo that shows how to use radio menu items, and +other menu stuff. + +Added wxIEHtmlWin. This is essentially the same as using IE with the +ActiveXWrapper already in the library, but it is implemented all in +C++ and therefore does not need any of the modules from win32all and +so it is less fragile in the face of changes. + +Fixed the ActiveXWrapper problem. Looks like when the win32com +modules make a "callback" that they (incorrectly, IMHO) allocate a +transient thread state structure. Since wxPython is now saving +tstates for it's own callbacks it ended up using garbage after +win32com got rid of the temporary tstate... + +Added a generic static text control to wxPython.lib.stattext. This is +so things like Boa and PythonCard can have a static text that can +respond to mouse events and etc. + +Changed the wxDateTime.Parse* methods to return an int that will be -1 +on failure, and the index where parsing stopped otherwise. + +Moved tools to be a Python package in wxPython.tools, added scripts to +import and launch each tool. This will let you import and use the +tools in your own scripts or apps as needed. On Linux and OS X the +tool scripts are installed to {prefix}/bin so you should be able to +easily launch them from the command line. For example, PyCrust can be +started with just the "pycrust" command. + +Added a sample to the demo that catches various key events and +displays the details of the event. + +Added wxWizard, wxWizardPage, wxWizardPageSimple and wxPyWizardPage. + +Added wxXmlResourceHandler which allows you to create custom handlers +for nonstandard class types in XRC resources. See the demo for an +example. + + + + +2.3.2.1 +------- +Changed (again) how the Python global interpreter lock is handled as +well as the Python thread state. This time it works on SMP machines +without barfing and is also still compatible with Python debuggers. + +Added some patches from library contributors. + + + +2.3.2 ----- Added EVT_HELP, EVT_HELP_RANGE, EVT_DETAILED_HELP, EVT_DETAILED_HELP_RANGE, EVT_CONTEXT_MENU, wxHelpEvent, @@ -55,12 +240,12 @@ messages however is wished. See demo/Main.py for an example. Added wxFindReplaceDialog. -The second phase of OOR is implemented (for wxEvtHandler and derived -classes at least.) This means that finctions and methods that return -an object derived from wxEvtHandler that was originally created in -Python, will return the original python object (if it still exists) -instead of letting SWIG wrap a new shadow object around the original -C++ pointer. +The second phase of OOR is implemented for wxEvtHandler, wxSizer, +wxShape and derived classes. This means that functions and methods +that return an object derived from wxEvtHandler that was originally +created in Python, will return the original Python object (if it still +exists) instead of letting SWIG wrap a new shadow object around the +original C++ pointer. Added some optimization methods to wxDC: GetBoundingBox, DrawLineList, DrawPointList. @@ -70,7 +255,7 @@ Added a set of sophisticated Error Dialogs from Chris Fama. Added wxRightTextCtrl from Josu Oyanguren to wxPython.lib for aligning text in a wxTextCtrl to the right side. -Added wxURLDataObject and and example showing drag and drop of URLs to +Added wxURLDataObject and an example showing drag and drop of URLs to and from web browsers. It's still not 100% bullet-proof for all types of browsers, but it works for the majority of cases with the popular browsers on Windows. On wxGTK it seems that only Netscape 4.x works, @@ -81,6 +266,38 @@ Added wxStopWatch. Added wxMimeTypesManager and wxFileType. +Passing None for the handler parameter to one of the EVT_** functions +will now Disconnect the event. + +Added wxPopupWindow and wxPopupTransientWindow. + +Added wxFileHistory. + +Added wxDynamicSashWindow, which allows you to endlessly split windows +by dragging a little tab next to the scrollbars. Added a demo to show +this and also the ability of multiple wxStyledTextCtrls to share the +same document. + +Added wxEditableListBox gizmo. + +Updated wxEditor with lots of enhancements from Steve Howell and Adam +Feuer. + +Added the "SplitTree gizmos" which are a collection of classes that +were designed to operate together and provide a tree control with +additional columns for each item. The classes are +wxRemotelyScrolledTreeCtrl, wxTreeCompanionWindow, +wxThinSplitterWindow, and wxSplitterScrolledWindow, some of which may +also be useful by themselves. + +Added wxDllWidget from Vaclav Slavik which allows wx widgets derived +from wxWindow to be loaded from a C++ .dll (or .so) and be used in a +wxPython program, without the widget having to be SWIGged first. The +visible API of the widget is limited to wxWindow methods plus a +SendCommand method, but it is still quite powerful. See +wxPython/contrib/dllwidget and wxPython/demo/dllwidget for more +details. +