]> git.saurik.com Git - wxWidgets.git/blame_incremental - wxPython/docs/CHANGES.txt
remove "pre"
[wxWidgets.git] / wxPython / docs / CHANGES.txt
... / ...
CommitLineData
1Recent Changes for wxPython
2=====================================================================
3
42.7.1.1
5-------
6*
7
8The following deprecated items have been removed:
9
10 * wx.Bitmap SetQuality and GetQuality methods
11
12 * The wx.GetNumberFromUser function
13
14 * wx.EVT_LIST_GET_INFO and wx.EVT_LIST_SET_INFO
15
16 * wx.BookCtrlSizer and wx.NotebookSizer
17
18 * The PostScript-specific methods of wx.PrintData
19
20 * wx.PrintDialogData SetSetupDialog and GetSetupDialog methods
21
22 * wx.FontMapper SetConfig method
23
24 * wx.html.HtmlSearchStatus.GetContentsItem method
25
26 * wx.html.HtmlHelpData.GetContents, GetContentsCnt, GetIndex, and
27 GetIndexCnt methods
28
29
30wx.EventLoop is now implemented for wxMac.
31
32Added wxPython wrappers for the new wx.Treebook and wx.Toolbook
33classes.
34
35wx.DC.BeginDrawing and EndDrawing have been deprecated in the C++
36code, so since they never really did anything before they are now just
37empty stubs in wxPython.
38
39Solved a problem that has been around for a very long time in how C++
40methods are virtualized for overriding in derived Python classes.
41Previously we couldn't do it for methods that needed to also exist in
42the base class wrappers such that they could be called normally. (The
43reasons are long and complex, but suffice it to say that it was due to
44mixing C++'s dynamic dispatch, and Python's runtime lookup of the
45method attributes resulting in endless recursion of function calls.)
46Because of this problem I used a hack that I have always hated, and
47that is renaming the base class methods with a "base_*" prefix, for
48example wx.Printout.base_OnBeginDocument. Now that the problem has
49finally been solved I have replaced all the base_Whatever() methods
50with the real Whatever() method as well as a simple wrapper named
51base_Whatever that is marked as deprecated. So now instead of writing
52your overridden methods like this::
53
54 def OnBeginDocument(self, start, end):
55 # do something here
56 return self.base_OnBeginDocument(start, end)
57
58You can now call the base class method the normal way, like this::
59
60 def OnBeginDocument(self, start, end):
61 # do something here
62 return Printout.OnBeginDocument(self, start, end)
63
64Or like this with super()::
65
66 def OnBeginDocument(self, start, end):
67 # do something here
68 return super(MyPrintout, self).OnBeginDocument(start, end)
69
70
71Note that the old way with the "base_*" function still works, but you
72will get a DeprecationWarning from calling base_OnBeginDocument. The
73classes affected by this are:
74
75 * wx.DropSource
76 * wx.DropTarget
77 * wx.TextDropTarget
78 * wx.FileDropTarget
79 * wx.PyLog (also added the ability to override Flush)
80 * wx.PyApp (also added the ability to override ExitMainLoop)
81 * wx.Printout
82 * wx.PyPrintPreview
83 * wx.PyPreviewFrame
84 * wx.PreviewControlBar
85 * wx.Process
86 * wx.PyControl
87 * wx.PyPanel
88 * wx.PyScrolledWindow
89 * wx.PyWindow
90 * wx.Timer
91 * wx.grid.PyGridCellRenderer
92 * wx.grid.PyGridCellEditor
93 * wx.grid.PyGridCellAttrProvider
94 * wx.grid.PyGridTableBase
95 * wx.html.HtmlWindow
96 * wx.wizard.PyWizardPage
97
98
99Added the wx.DC.GradientFillConcentric and wx.DC.GradientFillLinear
100methods.
101
102wxGTK: wx.ListBox and wx.CheckListBox are now using native GTK2
103widgets.
104
105Added wx.ListBox.HitTest() from patch 1446207
106
107Bumped up to SWIG 1.3.29. This provides some more runtime performance
108boosts, gets rid of the dreaded Ptr classes, and some other nice new
109things.
110
111Added wx.Window.GetScreenPosition and GetScreenRect which returns the
112position of the window in screen coordinates, even if the window is
113not a top-level window.
114
115Added GetResourcesDir and GetLocalizedResourcesDir to
116wx.StandardPaths.
117
118Added a GetReceivedFormat method to wx.DataObjectComposite. You can
119use this to find out what format of data object was recieved from the
120source of the clipboard or DnD operation, and then you'll know which
121of the component data objects to use to access the data.
122
123Changed how the stock objects (wx.RED, wx.RED_PEN, wx.RED_BRUSH, etc.)
124are initialized. They are now created as uninitialized instances
125using __new__. Then after the wx.App has been created, but before
126OnInit is called, the .this attribute of each obhect is initialized.
127This was needed because of some delayed initialization functionality
128that was implemented in wxWidgets, but the end result is cleaner for
129wxPython as well, and allowed me to remove some ugly code previously
130hidden under the covers.
131
132Added wx.StandardPaths.GetDocumentsDir.
133
134Added wx.RendererNative.DrawCheckButton.
135
136wx.ProgressDialog.Update now returns a tuple of two values. The first
137is a continue flag (what was returned before) and the second is a skip
138flag. If the dialog has the wx.PD_CAN_SKIP flag and if the Skip
139button is clicked, then the skip flag is set to True the next time
140Update is called.
141
142A DeprecationWarning is now issued when the old wxPython package is
143imported. If you are still using the old namespace please convert
144your code to use the new wx package instead.
145
146Added wrappers for Julian's new wxRichTextCtrl class, visible in
147wxPython as wx.richtext.RichTextCtrl window. It still needs some more
148work, but it is a great start.
149
150wx.lib.mixins.listctrl.TextEditMixin: Fixed the double END_LABEL_EDIT
151event problem in TextEditMixin by checking if the editor was already
152hidden before continuing with the CloseEditor method. Also added code
153to OpenEditor to send the BEGIN_LABEL_EDIT event and to not allow the
154opening of the editor to continue if the event handler doesn't allow
155it.
156
157wx.StaticBoxSizer now keeps better track of the wx.StaticBox, and it
158will destroy it if the sizer is destroyed before the parent window is.
159
160Added wx.HyperlinkCtrl.
161
162Added battery and power related functions and events (wxMSW only so
163far.) See wx.PowerEvent, wx.GetPowerType and wx.GetBatteryState.
164
165Added wx.ListCtrl.HitTestSubItem which returns the sub-item (i.e. the
166column in report mode) that was hit (if any) in addition to the item
167and flags.
168
169Added wrappers for wx.ColourPickerCtrl, wx.DirPickerCtrl,
170wx.FilePickerCtrl, and wx.FontPickerCtrl.
171
172Patch #1502016 wx.Image.ConvertToGreyscale now retains the alpha
173channel.
174
175Added wrappers for the wxAUI classes, in the wx.aui module.
176
177Added the PseudoDC class from Paul Lanier. It provides a way to
178record operations on a DC and then play them back later.
179
180Upgraded to Scintilla 1.70 for wx.stc.StyledTextCtrl.
181
182Added CanSetTransparent and SetTransparent methods to the
183wx.TopLevelWindow class, with implementations (so far) for wxMSW and
184wxMac.
185
186SetDefaultItem() and GetDefaultItem() are now members of
187wx.TopLevelWindow, not wx.Panel.
188
189wxGTK: Stock items (icons) will be used for menu items with stock
190IDs.
191
192Added wx.lib.combotreebox from Frank Niessink
193
194Added wx.ImageFromBuffer, wx.BitmapFromBuffer and
195wx.BitmapFromBufferRGBA factory functions. They enable loading of an
196image or bitmap directly from a Python object that implements the
197buffer interface, such as strings, arrays, etc.
198
199Added wx.App.IsDisplayAvailable() which can be used to determine if a
200GUI can be created in the current environment. (Still need an
201implementation for wxMSW...)
202
203The wx.html.HTML_FONT_SIZE_x constants are no longer available as the
204default sizes are now calculated at runtime based on the size of the
205normal GUI font.
206
207wx.Colour now includes an alpha component, which defaults to
208wx.ALPHA_OPAQUE. This is in preparation for allowing various new
209alpha blening functionality using wx.Colour objects, such as drawing
210with pens and brushes on a wx.DC.
211
212Added wx.NativePixelBuffer, wx.AlphPixelBuffer and related iterator
213and accessor classes. They allow platform independent direct access
214to the platform specific pixel buffer inside of a wx.Bitmap object.
215
216The beginnings of support for RTL languages has been added, thanks to
217a Google SoC project.
218
219Added wx.lib.dragscroller from Riaan Booysen. It provides a helper
220class that can used to scroll a wx.ScrolledWindow in response to a
221mouse drag.
222
223Applied patch 1551409: Adds support for indeterminate mode gauges.
224
225wxMac: I've turned on the compile option for using the native toolbar
226on the Mac now that it supports hosting of controls. If the toolbar
227is managed by the frame via either CreateToolBar() or SetToolBar()
228then the native toolbar will be used. Additional toolbars, or
229toolbars that are not children of the frame, are managed by sizers or
230what-not will still use the emulated toolbar because of platform
231restrictions in how/where the native toolbar can be used.
232
233Added Python properties for many of the getter/setter methods of wx
234classes. In order for the names to be predicatble for somebody
235already familiar with wxPython the property names are simply the name
236of the getter with the "Get" dropped. For example, wx.Window has a
237property named "Size" that maps to GetSize and SetSize. So far there
238is only one known name conflict using this naming convention, and that
239is wx.KeyEvent.KeyCode, however since KeyCode was formerly a
240compatibility alias for GetKeyCode (and has been for a long time) it
241was decided to just switch it to a property. If you want to use the
242method then change your calls to event.KeyCode() to
243event.GetKeyCode(), otherwise you can use it as a property just by
244dropping the parentheses.
245
246Updated the C++ code for wx.gizmos.TreeListCtrl from the wxCode
247project. This has resulted in some minor API changes, most of which
248were worked around in the wrapper code.
249
250Added wx.lib.delayedresult from Oliver Schoenborn.
251
252Added wx.lib.expando, a multi-line textctrl that exands as more lines
253are needed.
254
255wx.Image.Scale and Rescale methods now take an extra parameter
256specifying type of method to use for resampling the image. It
257defaults to the current behavior of just replicating pixels, if
258wx.IMAGE_QUALITY_HIGH is passed then it uses bicubic and box averaging
259resampling methods for upsampling and downsampling respectively.
260
261Added the wx.lib.buttonpanel module, which is a tweaked version of
262Andrea Gavana's FancyButtonPanel module.
263
264Added the wx.lib.flatnotebook module, from Andrea Gavana.
265
266Renamed wx.FutureCall to wx.CallLater so it is named more like
267wx.CallAfter. wx.FutureCall is now an empty subclass of wx.CallLater
268for compatibility of older code.
269
270Added the wx.lib.customtreectrl the from Andrea Gavana.
271
272Added ChangeSelection to wx.BookCtrl (the base class for wx.Notebook
273and other book controls) that is the same as SetSelection but doesn't
274send the change events.
275
276Added wx.TextCtrl.ChangeValue() which is the same as SetValue() but
277doesn't send the text changed event.
278
279For consistency, all classes having an Ok() method now also have
280IsOk(), use of the latter form is preferred although the former hasn't
281been deprecated yet
282
283Added the wx.AboutBox() function and wx.AboutDialogInfo class. They
284provide a way to show a standard About box for the application, which
285will either be a native dialog or a generic one depending on what info
286is provided and if it can all be shown with the native dialog.
287
288The code in the animate contrib has been moved into the code wxWidgets
289library, and refactored a bit along the way. For wxPython it still
290exists in the wx.animate module, but has basically been reduced to two
291classes, wx.animate.Animation, and wx.animate.AnimationCtrl. You load
292the animated GIF (and hopefully there will be other supported formats
293in the near future) in the Animation object, and then give that to the
294AnimatedCtrl for display. See the demo for an example. There is also
295still a GIFAnimationCtrl class that provides some level of backwards
296compatibility with the old implementation.
297
298wxMac: The compile option that turns on the use of CoreGraphics (a.k.a
299Quartz) for wxDC is now turned on by default. This means that all
300drawing via wxDC is done using the new APIs from apple, instead of the
301old Quick Draw API. There are, however, a few places where Quartz and
302wxDC don't fit together very well, mainly the lack of support for
303logical drawing operations such as XOR, but there is work in progress
304to provide other ways to do the same sort of thing that will work with
305Quartz and also on the other platforms.
306
307The first parts of a new 2D drawing API has been added with the
308wx.GraphicsPath and wx.GraphicsContext classes. They wrap GDI+ on
309Windows, Cairo on wxGTK and CoreGraphics on OS X. They allow path-based
310drawing with alpha-blending and anti-aliasing, and use a floating
311point cooridnate system. Currently they can only target drawing to
312windows, but other wx.DC backends are forthcoming. The APIs may
313evolve a bit more before they are finalaized with the 2.8 release, but
314there is enough there now to get a good feel for how things will work.
315There is also a transitional wx.GCDC class that provides the wx.DC API
316on top of wx.GraphicsContext. Docs and a demo are still MIA.
317
318Added a wx.AutoBufferedPaintDC that is a subclass of wx.PaintDC on
319platforms that do double buffering by default, and a subclass of
320wx.BufferedPaintDC on the platforms that don't. You can use this
321class to help avoid the overhead of buffering when it is not
322needed. There is also a wx.AutoBufferedPaintDCFactory function that
323does a little more and actually tests if the window has
324double-buffering enabled and then decides whether to return a
325wx.PaintDC or wx.BufferedPaintDC. This uses the new
326wx.Window.IsDoubleBuffered method.
327
328
329
330
331
332
333
3342.6.3.3
335-------
336* 15-July-2006
337
338wx.lib.pubsub updates from Oliver Schoenborn:
339 - fixed the hash problem with non-hashable objects
340 - now supports listeners that use \*args as an argument
341 (listener(\*args) was not passing the validity test)
342 - corrected some mistakes in documentation
343 - added some clarifications (hopefully useful for first time
344 users)
345 - changed the way singleton is implemented since old way prevented
346 pydoc etc from extracting docs for Publisher
347
348DocView and ActiveGrid IDE updates from Morgan Hua:
349 New Features: In Tab-View mode, Ctrl-number will take the user to
350 the numbered tab view. Modified files now show an '*' astrisk in
351 the view title. Debugger framework can now support PHP debugging.
352 Not important for python development, but at least that means the
353 debugger framework is more generalized.
354
355wx.lib.mixins.listctrl.TextEditMixin: Fixed the double END_LABEL_EDIT
356event problem in TextEditMixin by checking if the editor was already
357hidden before continuing with the CloseEditor method. Also added code
358to OpenEditor to send the BEGIN_LABEL_EDIT event and to not allow the
359opening of the editor to continue if the event handler doesn't allow
360it.
361
362Undeprecated wx.GetNumberFromUser and added wx.NumberEntryDialog.
363
364Made necessaary changes for building wxPython for Python 2.5. There
365may still be some issues related to the new Py_ssize_t type and 64-bit
366machines, but at least all compile errors and warnings related to it
367have been resolved.
368
369
370
371
3722.6.3.2
373-------
374* 3-April-2006
375
376Fixed reference leak in wx.gizmos.TreeListCtrl.GetSelections.
377
378wxMSW: Fixed sizing issue with wx.Choice and wx.ComboBox. This change
379was implemented by reverting a prior fix for a different problem
380(contiuous painting/resizing when a combobox is used as a widget in a
381wx.html.HtmlWindow) so a method to fix both problems is still being
382investigated.
383
384wxGTK: Fixed potential buffer overrun when pasting from the
385clipboard.
386
387Fixed problem in wx.lib.splitter when used on 64-bit platforms. Used
388the current length of the list for specifying an append instead of
389sys.maxint.
390
391wxMSW: Support added for XP themed owner drawn buttons and bitmap
392buttons. For example, if you change the foreground color of a button
393it will now be drawn with the XP themed style rather than an ugly
394generic button style.
395
396XRCed: Fix for Copy/Paste objects with international characters.
397
398Fixed the equality and inequality operators for some of the basic
399data types (wx.Point, wx.Size, wx.Colour, etc.) to no longer raise a
400TypeError if the compared object is not compatible, but to just return
401a boolean as expected. For example::
402
403 wx.Colour(64,0,64) == 123 ==> False
404
405wxMSW: Fixed (again) sizing/positioning issues of calling Realize on
406a wx.ToolBar that is not manaaged directly by a frame and that is
407already shown.
408
409wxMSW: Fixed wx.Choice/wx.ComboBox so they send events when a new item
410is selected only with the keyboard.
411
412
413
4142.6.3.0
415-------
416* 27-March-2006
417
418Change the wx.ListCtrl InsertStringItem wrapper to use the form that
419takes an imageIndex, and set the default to -1. This ensures that on
420wxMSW that if there is an image list but they don't specify an image,
421the native control doesn't use one anyway.
422
423wxMSW: wx.ListCtrl in report mode is now able to support images in
424other columns besides the first one. Simply pass an image index to
425SetStringItem. For virtual list controls you can specify the image to
426use on the extra columns by overriding OnGetItemColumnImage in your
427derived class. It is passed the item number and the column number as
428parameters, and the default version simply calls OnGetItemImage for
429column zero, or returns -1 for other columns.
430
431Switched to using SWIG 1.3.27 for generating the wrapper code. There
432are some small changes needed to SWIG to work around some bugs that
433wxPython exposes, and to be able to generate code that matches that
434which wxPython is using. If you are building wxPython yourself and
435need to modify any of the \*.i files or to add your own, then you will
436want to be sure to use a matching SWIG. See wxPython/SWIG/README.txt
437in the source tarball for details.
438
439wx.Image.Copy, Mirror, and GetSubImage now also do the right thing
440with the alpha channel.
441
442wxMSW: Fixed problem in wx.TextCtrl where using SetValue and
443wx.TE_RICH2 would cause the control to be shown if it was hidden.
444
445wxMSW: Numpad special keys are now distinguished from normal keys in
446key events.
447
448wxMSW: Multiline notebook tab label change now resizes the control
449correctly if an extra row is removed or added.
450
451wxMSW: On XP fall back to unthemed wxNotebook if specified orientation
452not available in the themed version.
453
454Added wx.Toolbar.GetToolsCount.
455
456Added wx.GridSizer.CalcRowsCols.
457
458Added wx.OutputStream.LastWrite.
459
460wxGTK: EVT_SET_CURSOR is now sent.
461
462wxGTK: Fix RequestMore for idle events.
463
464wxGTK: Implement user dashes for PS and GNOME printing.
465
466wxGTK: Correct update region code. Don't always invalidate the whole
467window upon resize. Reenable support for thewx.NO_FULL_REPAINT_ON_RESIZE
468flag. Also disable refreshing custom controls when focusing in and out.
469
470wx.lib.pubsub: Publisher is now able to parse a dotted notation string
471into a topic tuple. For example: subscribing to "timer.clock.seconds"
472is the same as subscribing to ("timer", "clock", "seconds").
473
474Applied patch #1441370: lib.plot - allow passing in wx.Colour()
475
476Added wx.CommandEvent.GetClientData.
477
478Updated wxStyledTextCtrl to use version 1.67 of Scintilla.
479NOTE: The STC_LEX_ASP and STC_LEX_PHP lexers have been deprecated,
480you should use STC_LEX_HTML instead.
481
482wxSTC: Implemented Fix for SF Bug #1436503. Delay the start of the
483DnD operation in case the user just intended to click, not drag.
484
485Updated the analogclock.py module to the new analogclock package from
486E. A. Tacao.
487
488Added the wx.lib.mixins.listctrl.CheckListCtrlMixin class from Bruce
489Who, which makes it easy to put checkboxes on list control items.
490
491Applied a patch from Christian Kristukat to wx.lib.plot that adds
492scrollbars when the plot is zoomed in, and also the ability to grab a
493zoomed plot and move it around with a mouse drag.
494
495XRCed updated to allow wxMenuBar to be created inside a wxFrame.
496
497Added wx.StandardPaths.GetDocumentsDir() (patch 1214360)
498
499
500
501
502
503
5042.6.2.1
505-------
506* 10-Jan-2006
507
508wxMSW: Fix for bug #1211907, popup menu indenting inconsistent with
509bitmaps.
510
511wxMac: Don't send an event for wx.RadioButton deselections, just the
512selections. This was done to make it consistent with the other
513platforms.
514
515wxMSW: Always set flat toolbar style, even under XP with themes: this
516is necessary or separators aren't shown at all.
517
518Fixes for bug #1217872, pydocview.DocService not correctly initialized.
519
520Fix for bug #1217874, Error in parameter name in DocManager.CreateView.
521
522Added wrappers for the wx.RendererNative class.
523
524Added the wx.lib.splitter module, which contains the
525MultiSplitterWindow class. This class is much like the standard
526wx.SplitterWindow class, except it allows more than one split, so it
527can manage more than two child windows.
528
529Docview and IDE patch from Morgan Hua with fix for bug #1217890
530"Closing view crashes Python" plus some new features:
531
532 New feature added to the IDE is 'Extensions'. Under
533 Tools|Options|Extensions, you can add calls to external programs.
534 For example you can add a "Notepad" extension (under windows) that
535 will exec Notepad on the currently open file. A new "Notepad"
536 menu item will appear under the Tools menu.
537
538Some fixes to XRCed to make encoding errors a bit more user friendly.
539
540XRCed changes from Roman Rolinsky:
541
542 * Added new controls (Choicebook, Listbook, StatusBar,
543 DatePicker), and completed style flags. Test window is opened
544 for an available parent control if no specific view
545 defined. Better handling of exceptions (highlighting does not
546 'stick' anymore).
547
548 * Use system clipboard for Copy/Paste.
549
550 * Improved some dialogs (window styles, growable cols). Changed
551 the range for wxSpinCtrl min/max to all integers (default 0/100
552 is not always good).
553
554Updates for wx.lib.foldpanelbar and wx.lib.hyperlink from Andrea
555Gavana.
556
557Fix for Bug #1283496: wxPython TheClipboard class causes problems for
558pychecker. Ensure the app has been created before initializing
559wx.TheClipboard.
560
561Fix for Bug #1352602: FileBrowseButtonWithHistory can't type in Value.
562
563wxHTML: Added space after list item number.
564
565wx.lib.printout: Applied patch #1384440.
566
567wxMSW: Fix for Bug #1293225 Window_FromHWND crashes if parent is
568None.
569
570Fix for Bug #1261669, use a wx.TE_RICH2 style for the Process demo so
571it doesn't fill up too soon.
572
573Applied Patch #1354389: wxPython MenuItem SetBitmaps fix.
574
575Applied Patch #1239456: wxPython wx.DataObject.GetAllFormats fix.
576
577Applied Patch # #1230107 which allows image handlers to be written in
578Python by deriving from wx.PyImageHandler.
579
580Applied patch #1072210: generalize printout.py to allow text printing.
581
582Applied patch #1243907: Give Throbber much more flexibility by
583allowing the user to set the rest image, the direction, the current
584index, custom sequence. Allows user to manually step through the
585sequence with Next(), Previous(), Increment(), Decrement() &
586SetCurrent(). Very handy if you have multiple throbbers that you want
587to synchronize with a single timer.
588
589Fix for bug #1336711: wx.lib.calendar.CalenDlg can yield incorrect
590result.
591
592Applied patch from Morgan Hua for updates to ActiveGrid code
593(pydocview, ActiveGrid IDE, etc.)
594
595Applied patch #1326241: Supporting "setup.py install --install-headers=path"
596
597Applied patch from Morgan Hua to fix bug #1219423: CommandManager
598should not repeat old commands after a branch.
599
600Applied patch #1238825 adding search backward capabilities to the
601demo. Modified to use the up/down options in the wx.FindReplaceDialog
602instead of a separate menu item.
603
604Fix for bug #1266745 and #1387725 in the wx.FindReplaceDialog on MSW.
605Actually check we are using MSLU before doing the hack designed to
606workaround a bug in MSLU!
607
608wxMSW: wx.lib.iewin.IEHtmlWindow now properly handles tabbing, return
609and other special keys properly.
610
611Lots of PyCrust enhancments started by Franz Steinaeusler, Adi Sieker,
612and Sebastian Haase, and which in turn were further enhanced, fixed
613tweaked and finished up by me. The changes include the following:
614
615 * The Autocomplete and Calltip windows can now be opened manually
616 with Ctrl-Space and Ctrl-Shift-Space.
617
618 * In the stand alone PyCrust app the various option settings,
619 window size and position, and etc. are saved and restored at the
620 next run.
621
622 * Added a help dialog bound to the F1 key that shows the key
623 bindings.
624
625 * Added a new text completion function that suggests words from
626 the history. Bound to Shift-Return.
627
628 * F11 will toggle the maximized state of the frame.
629
630 * switched to Bind() from wx.EVT_*().
631
632 * Display of line numbers can be toggled.
633
634 * F12 toggles a "free edit" mode of the shell buffer. This mode
635 is useful, for example, if you would like to remove some output
636 or errors or etc. from the buffer before doing a copy/paste.
637 The free edit mode is designated by the use of a red,
638 non-flashing caret.
639
640 * Ctrl-Shift-F will fold/unfold (hide/show) the selected lines.
641
642 * General code cleanup and fixes.
643
644 * Use wx.StandardPaths to determine the location of the config
645 files.
646
647 * Use wx.SP_LIVE_UPDATE on crust and filling windows.
648
649 * Extended the saving of the config info and other new features to
650 the PyShell app too. Additionally, other apps that embed a
651 PyCrust or a PyShell can pass their own wx.Config object and
652 have the Py code save/restore its settings to/from there.
653
654 * All of the classes with config info get an opportunity to
655 save/load their own settings instead of putting all the
656 save/load code in one place that then has to reach all over the
657 place to do anything.
658
659 * Enable editing of the startup python code, which will either be
660 the file pointed to by PYTHONSTARTUP or a file in the config dir
661 if PYTHONSTARTUP is not set in the environment.
662
663 * Added an option to skip the running of the startup code when
664 PyShell or PyCrust starts.
665
666 * PyCrust adds a pp(item) function to the shell's namespace that
667 pretty prints the item in the Display tab of the notebook.
668 Added code to raise that tab when pp() is called.
669
670 * Added an option for whether to insert text for function
671 parameters when popping up the call tip.
672
673 * Added Find and Find-Next functions that use the
674 wx.FindReplaceDialog.
675
676
677Applied patches from Will Sadkin for wx.lib.masked modules:
678
679 * Now ignores kill focus events when being destroyed.
680
681 * Added missing call to set insertion point on changing fields.
682
683 * Modified SetKeyHandler() to accept None as means of removing
684 one.
685
686 * Fixed keyhandler processing for group and decimal character
687 changes.
688
689 * Fixed a problem that prevented input into the integer digit of a
690 integerwidth=1 numctrl, if the current value was 0.
691
692 * Fixed logic involving processing of "_signOk" flag, to remove
693 default sign key handlers if false, so that
694 SetAllowNegative(False) in the NumCtrl works properly.
695
696 * Fixed selection logic for numeric controls so that if
697 selectOnFieldEntry is true, and the integer portion of an
698 integer format control is selected and the sign position is
699 selected, the sign keys will always result in a negative value,
700 rather than toggling the previous sign.
701
702wx.FontMapper.SetConfig is deprecated. You should instead just set an
703application-wide config object with wx.Config.Set, which wx.FontMapper
704will use by default.
705
706Added wx.GetMouseState which returns the current state of the mouse.
707It returns an instance of a wx.MouseState object that contains the
708current position of the mouse pointer in screen coordinants, as well
709as boolean values indicating the up/down status of the mouse buttons
710and the modifier keys.
711
712Added wx.SizerItem.SetUserData
713
714A variety of updates to wx.lib.floatcanvas, including Added
715DrawObjects, including a ScaledTextBox, with auto-wrapping, etc, and
716Scaled and Unscaled Bitmap Objects.
717
718 WARNING: Changed all DrawObjects to take an (x,y) pair rather
719 than individual x,y parameters. Also changed rectangles and
720 ellipses to take (w,h) pair. This is an API change, but should
721 be easy to accommodate, all you need to do is add a parenthesis
722 pair: (...x, y, ...) ---> (...(x,y), ...)
723
724
725
726
7272.6.1.0
728-------
729* 4-June-2005
730
731wx.ListCtrl: patch #1210352, fixes editing in generic wx.ListCtrl with
732wx.LC_EDIT_LABELS.
733
734Applied patch #208286, MediaCtrl DirectShow rewrite.
735
736DocView patches from Morgan Hua: bug fixes, and additional SVN
737commands, also added a default template that uses the text editor for
738any unknown file type.
739
740wxMSW: Use the system IDC_HAND cursor for wx.CURSOR_HAND and only fallback
741to the strange wxWidgets version if the system one is not available.
742
743wx.grid.Grid: Merge the cell size attribute the same way that other
744attributes are merged, e.g., if it is already set to a non-default
745value in the current GridCellAttr object then don't merge from the
746other.
747
748wx.lib.evtmgr: Fixed to use wx._core._wxPyDeadObject
749
750wx.lib.gridmovers: Don't scroll when the mouse is dragged outside of
751the grid, unless the mouse is kept in motion.
752
753wxMSW: Applied patch #1213290 incorrect logic in
754wx.TopLevelWindow.ShowFullScreen.
755
756Applied patch #1213066 correct device names for Joystick in Linux.
757
758wxGTK: Applied patch #1207162 wx.TextCtrl.SetStyle fix for overlapping
759calls.
760
761wx.FileConfig: fixed DeleteEntry to set the dirty flag properly so the
762change will get written at the next flush.
763
764
765
766
767
7682.6.0.1
769-------
770* 30-May-2005
771
772Added wx.BrushFromBitmap to create a stippled brush in a single step.
773Also added missing brysh style flags: wx.STIPPLE_MASK
774wx.STIPPLE_MASK_OPAQUE.
775
776wxMSW: Fix for default control colours when the system text fg colour
777is not black.
778
779wxGTK: Patch #1171754, It is now possible to have a menu item that
780both has an icon and is a submenu.
781
782wxMSW: Patch #1197009, better refreshes when windows are moved and
783resized.
784
785wxMSW: Patch #1197468. Keeps track of pending size/position changes
786in case there is more than one adjustment for a window in a single
787DeferWindowPos set, then the pending values can be used for defaults
788instead of current values.
789
790Fixed the typemap that converts a Python list of strings to a
791wxArrayString so it uses the wxPython default encoding.
792
793Several docstrings added and updated. Lots more to go.
794
795wxMac: Strings added to the clipboard or used in DnD no longer have an
796extra null character at the end.
797
798Added wx.GetXDisplay that returns a raw swigified pointer for the X11
799Display, or None for the non-X11 platforms.
800
801wxMenu: Don't send an event when selecting an already selected radio
802item.
803
804Added wx.LaunchDefaultBrowser.
805
806wxMSW: Fixed erroneous selection of content in wx.ComboBox when within
807a wx.StaticBox.
808
809wxMSW: Fixed alpha blitting to take into account source position.
810
811Ensure that Python is still in an initialized state before doing any
812locking or unlocking in wxPyBeginBlockThreads and wxPyEndBlockThreads
813as these can be triggered after Python has been finalized in embedding
814situations.
815
816Added alternate constructors for wx.Font: wx.FontFromPixelSize,
817wx.FFont, wx.FFontFromPixelSize. See the docstrings or new api docs
818for details.
819
820Added wx.lib.hyperlink from Andrea Gavana. It is a control like
821static text that acts like a hyper-link, launching the system's
822default browser in response to the clicks.
823
824Added an optional parameter to wxversion.select that allows you to
825specify that the extra components specified in the version string are
826required. For example, if you ask for "2.6-unicode" but only the ansi
827version is installed then by default the ansi version will be selected
828as it considered close enough since the version numbers match. If you
829want to force the options to be required then you can just add a True
830parameter, like this::
831
832 import wxversion
833 wxversion.select("2.6-unicode", True)
834 import wx
835
836Tweaked wx.lib.buttons such that flat buttons (e.g. have no bevel and
837a wx.BORDER_NONE style flag) paint themed backgrounds if there are
838transparent areas and the parent is displaying a theme.
839
840wxMSW: Fix for wrong sash colour of wx.SplitterWindow in the silver
841theme on XP.
842
843Added a wx.xrc.XmlResourceHandler for the Ticker class. See
844wx/lib/ticker_xrc.py
845
846wxSTC: Fixed CmdKeyAssign key bindings for Ctrl-Backspace.
847
848wxMSW: Fixed a bug in wx.TextCtrl where all the lines were being used
849to calculate the best size, instead of using a reasonable limit.
850
851XRCed: Use wx.GetDefaultPyEncoding/wx.SetDefaultPyEncoding for
852changing active encoding. Fixed pasting siblings (Ctrl key pressed
853while pasting).
854
855wx.lib.filebrowsebutton: Bug fix from Chad Netzer for when
856self.history is None.
857
858wx.ogl: Patch from Davide Salomoni that adds an optional point
859parameter to LineShape.InsertLineControlPoint allowing one to
860optionally specify where the new control point has to be drawn.
861
862wxMSW: setting foreground colour for wx.CheckBox now works when using
863XP themes.
864
865More updates to the docview library modules and sample apps from the
866ActiveGrid folks. Their sample IDE is now able to integrate with
867Subversion.
868
869wx.grid.Grid: Ensure that the grid gets the focus when it is
870left-clicked. Note that if you have custom widgets that handle the
871EVT_LEFT_DOWN event but do not call event.Skip() then you will
872probably want to add a call to self.SetFocus in the event handler.
873
874wxGTK: Add wxSTAY_ON_TOP support [Patch 1206023]
875
876wx.TreeCtrl: wx.EVT_TREE_ITEM_MENU event made consistent on all
877platforms. The location of the click or the item is included in the
878event as well.
879
880wxGTK: Setting background colour of a window now only affects the
881window itself, not the borders, scrollbars, etc. (Bug #1204069)
882
883Print framework: Add more paper sizes and code to fallback to an
884explicit paper size if a known paper size is not found for the
885printer.
886
887wxMac: Applied patch for bug #1206181 Option-key decodes are wrong,
888also applied patch for bug #1205691 Modified Fn keys don't work.
889
890wx.Image: Fixed to preserve alpha channel in Rotate90 method.
891
892wxMSW: Fixed incorrect background colour on wx.CheckListBox.
893
894wxMSW: Fixed drawing of owner drawn buttons with multiline labels
895
896Removed a bunch of unnecessary files, and removed or replaced images
897that we're not sure of their origin or license.
898
899The default DoGetBestSize is updated to not always return the current
900size if the window has no sizer, children, or minsize set. Instead
901the current size is set as the minsize. This solves the occasional
902problem where a sizer may cause a childless panel to grow but never
903shrink.
904
905wxMSW: When converting a wx.Icon to a bitmap check if the icon has an
906alpha channel and set the bitmap to use it.
907
908Fixed the wrong class name used in wx.PyScrolledWindow's call to
909_setCallbackInfo.
910
911wxMSW: patch #1207202, Fixes GDI leak when using stock cursors.
912
913wx.calendar.CalendarCtrl: Patch #1207531, Keeps the CalendarCtrl wide
914enough even when the weekday names for the locale are shorter than
915usual.
916
917Made GridCellNumberEditor.StartingKey also insert the typed char when
918there is a range of allowed values (so a wx.SpinCtrl is used instead
919of a wx.TextCtrl.)
920
921
922
923
924
9252.6.0.0
926-------
927* 26-Apr-2005
928
929wxMSW: Fixed wx.TransientPopupWindow (and therefore wx.TipWindow) to
930auto-dismiss when the mouse is clicked outside of the popup like it is
931supposed to.
932
933wxMSW: Fixed bug #1167891 wx.Notebook display problem with wx.NB_MULTILINE.
934
935wxMSW: Fixed bad cliping of hidden windows inside of wx.StaticBox.
936
937wxGTK: The configure flags for selecting GTK+ 1.2.x or 2.x has
938changed slightly. It is now --with-gtk[=VERSION] where VERSION is
939either '1', '2' or 'any'. The default is '2'.
940
941wx.stc.StyledTextCtrl: Added the following methods for alternate ways
942to set and fetch text from the document buffer. They work similarly
943to the existing methods of the same name, except that they don't go
944through the same string/unicode <--> wxString conversions. The "Raw"
945methods will do no conversions at all and in a unicode build of
946wxPython the strings will be in the utf-8 encoding and in an ansi
947build no assumption is made about the encoding. The "UTF8" functions
948will attempt to always get/set utf-8 text, which it will always be
949able to do in a unicode build, and in an ansi build it will depend on
950the content of the utf-8 used being compatible with the current
951encoding, (you'll get an exception otherwise.)
952
953 =================== ====================
954 AddTextRaw AddTextUTF8
955 InsertTextRaw InsertTextUTF8
956 GetCurLineRaw GetCurLineUTF8
957 GetLineRaw GetLineUTF8
958 GetSelectedTextRaw GetSelectedTextUTF8
959 GetTextRangeRaw GetTextRangeUTF8
960 SetTextRaw SetTextUTF8
961 GetTextRaw GetTextUTF8
962 AppendTextRaw AppendTextUTF8
963 =================== ====================
964
965
966wx.stc.StyledTextCtrl: Added the StyleSetFontEncoding(style, enc)
967method that allows you to set the encoding to be used by the font for
968a particular style.
969
970wxMac: Fixed wx.ComboBox to forward the EVT_CHAR, EVT_KEY_DOWN,
971EVT_KEY_UP and EVT_TEXT events from its embedded text control.
972
973wxMac: Corrected refresh bugs in wxGrid.
974
975XRCed: Updated to version 0.1.5.
976 * Added wxWizard, wxWizardPageSimple (only from pull-down menu).
977 * Hide command for test window.
978 * Replacing classes works better.
979 * Added Locate tool.
980
981
982
983
9842.5.5.1
985-------
986* 8-Apr-2005
987
988wxMSW: Fixed bug #1022383, 'several ComboBoxes appear selected'
989
990wx.grid.Grid: Fixed bug #1163384. Moved the code that handles
991activating the cell editors to a EVT_CHAR event handler. This is done
992so the character inserted into the editor will be the "cooked" char
993value (including accented or composed keys) rather than the raw code
994provided by the EVT_KEY_DOWN event.
995
996Added orient parameter to wx.MDIParentFrame.Tile()
997
998wxMSW: wxTextCtrl with wx.TE_RICH2 style now uses RichEdit 4.1 if
999available.
1000
1001Added GetCount, GetCountRGB, and GetCountColour methods to
1002wx.ImageHistogram.
1003
1004wxMSW: wx.Window.Refresh changed to explicitly refresh all children as
1005well as the parent. Previously it was implicitly done because parents
1006did not clip their children by default. Now that they always clip
1007children then Refresh needed to be fixed to do a recursive refresh.
1008This also fixes the Freeze/Thaw problems that some people had with
10092.5.4.1.
1010
1011wx.SplitterWindow: Send EVT_SPLITTER_SASH_POS_CHANGED only once after
1012end of dragging and not after each CHANGING event (modified patch
1013#1076226)
1014
1015wx.glcanvas.GLCanvas: applied patch fixing problems with X server
1016crash when using nVidia cards (patch 1155132)
1017
1018wx.lib.mixins.listctrl: Patches from Toni Brkic:
1019 * Bugfix for TextEditMixin when the view can't be scrolled
1020 * Enhancement for ListCtrlAutoWidthMixin, allowing it to manage
1021 the width of any column.
1022
1023wxMac: removal and reusing toolbar tools like the other platforms is
1024now possible.
1025
1026wxMac: Correct radio tool selection after calling Realize a 2nd time.
1027
1028wxMSW: Applied patch #1166587, removes all flicker from wx.StaticBox
1029
1030Added wx.lib.foldpanelbar, Andrea Gavana's port of Jorgen Bodde's C++
1031wxFoldPanelBar classes to Python.
1032
1033wxGTK: Applied patch #1173802, reimplementation of GtkFileChooser
1034wxFileDialog by Mart Raudsepp. Note that this new file dialog is only
1035used on GTK2 >= 2.4. For earlier GTK2 versions and GTK1 then the
1036older generic file dialog is used.
1037
1038wxMSW: fixes to static box borders calculations (finalizes patch
1039#1166587)
1040
1041wx.Image: Use Python's buffer interface API for all image data and
1042alpha Set/Get methods and the ImageFromData* constructors. They all
1043still copy the buffer except for SetDataBuffer and SetAlphaBuffer, but
1044this gives more flexibility on where the data can come from.
1045
1046Added MDI support to XRC
1047
1048Added wx.animate module and a demo. The wx.animate module provides a
1049control that is able to display an animated GIF file.
1050
1051wx.lib.plot.py: Applied patch from Werner F. Bruhin that allows either
1052vertical and/or horizontal gridlines.
1053
1054wxMSW: Extra space given for top border of wx.StaticBoxSizer so the
1055upper line is not cliped when there is no label.
1056
1057wxMSW: Restored old behaviour of wx.StaticBox.SetBackgroundColour only
1058affecting the label.
1059
1060wxMSW: Fixed missing EVT_RIGHT_DOWN and EVT_TREE_ITEM_RIGHT_CLICK
1061events in a wx.TreeCtrl.
1062
1063Added wx.GetTopLevelWindows() function which returns a copy of the
1064list of top-level windows that currently exist in the application.
1065
1066Updated docview library modules and sample apps from the ActiveGrid
1067folks.
1068
1069Added the ActiveGrid IDE as a sample application.
1070
1071
1072
1073
10742.5.4.1
1075-------
1076* 16-Mar-2005
1077
1078wx.Sizer Add, Insert, and Prepend functions now return a reference to the
1079wx.SizerItem that was added to the sizer, and the wx.SizerItem has a
1080GetRect accessor to give the position of the item on the parent window.
1081
1082Added wx.Sizer.GetItem method which returns the wx.SizerItem for the given
1083wx.Window, wx.Sizer or position index.
1084
1085wxMSW: wx.RadioButtons in the same group no longer have to be
1086consecutive (there may be intervening controls). Without this fix, an
1087out-of-sync assert is generated when clicking on a radio button and
1088then calling GetValue().
1089
1090Some XRC changes:
1091 - Added 'icon' property to wxFrame and wxDialog
1092 - No longer ignores menu bitmaps on non-MSW platforms
1093 - Notebook page bitmaps are now supported
1094 - added system colours and fonts support (based on patch #1038207)
1095
1096wxMSW: fix for [ 1052989 ] TextCtrl.SetBackgroundColour(wx.NullColour)
1097bug.
1098
1099Added wx.PasswordEntryDialog analagous to wx.TextEntryDialog, allows
1100detecting entering an empty string vs. cancel unlike the
1101wx.GetPasswordFromUser dialog function.
1102
1103OGL patch from Shane Holloway:
1104
1105 Two simple problems found in the new python ogl code. First is
1106 the patch for _canvas.py. Essentially::
1107
1108 dx = abs(dc.LogicalToDeviceX(x - self._firstDragX))
1109 dy = abs(dc.LogicalToDeviceY(y - self._firstDragY))
1110
1111 was incorrect because (x,y) and (self._firstDragX,
1112 self._firstDragY) are both already in Logical coordinates.
1113 Therefore the difference between the two is also in logical
1114 coordinates, and the conversion call is an error. This bug
1115 surfaces when you have OGL on a scrollwin, and you are far from
1116 the origin of the canvas.
1117
1118 The second change in _composit.py basically removes the assumption
1119 that the child is in both self._children and self._divisions.
1120 Causes many problems when it's not. ;)
1121
1122Fixed GetSaveData and SetSaveData in wx.lib.multisash to not depend on
1123the default way that class objectss are converted to strings.
1124
1125Fixed problem in StyledTextCtrl.Set[HV]ScrollBar that could leave the
1126internal scrollbar visible.
1127
1128Added wx.StandardPaths which provides methods for determining standard
1129system paths for each platform.
1130
1131wxMSW: The window background is now only erased by default if the
1132background colour or background mode has been changed. This better
1133allows the default system themed behaviour to show through for
1134uncustomized windows. Explicit support added for using the correct
1135theme texture for wx.Notebook pages and their children.
1136
1137wx.Image: Added support for alpha channels in interpolated and
1138non-interpolated image rotation. Added ConvertAlphaToMask helper
1139method for turning shades of grey into shades of alpha and a colour.
1140
1141wxGTK2: Reimplemented DoDrawRotatedText() by way of a rotation of an
1142alpha blended text bitmap. It would be better if Pango could draw
1143directly into an wxImage (as FreeType can,) but that is for later...
1144
1145Added wrappers and a demo for the wx.MediaCtrl class, which can play
1146various forms of audio/video media using native codecs install on the
1147system. So far it is only implemented for Windows and OSX.
1148
1149wxGTK: Patch applied for Freeze()/Thaw() for wxTextCtrtl.
1150
1151Added "gravity" for splitter window (patch 1046105). Gravity is a
1152floating-point factor between 0.0 and 1.0 which controls position of
1153sash while resizing the wx.SplitterWindow. The gravity specifies
1154how much the left/top window will grow while resizing.
1155
1156wxMSW: wx.Slider's C++ implementation rewritten to be more
1157maintainable and hopefully less buggy. The position of the labels has
1158also been changed in order to better comply with Microsoft's examples
1159of how to use the control.
1160
1161wxMSW: Fix wx.TreeCtrl to end label editing if the control loses
1162focus (a slightly modified patch 1084592.)
1163
1164Added wx.EXEC_NODISABLE flag for wx.Execute, which will prevent all
1165the app's windows being disabled while a synchronous child process is
1166running.
1167
1168wxMSW: Much work to correct painting (or leaving transparent) of
1169control backgrounds, properly using background themes on XP, etc.
1170
1171Fixed a circular reference problem with wx.Timer. It will now
1172completely cleanup after itself when the last reference to the timer
1173is removed. If you were previously using timer.Destroy() to cleanup
1174your timers it will no longer work. Instead you should hold a
1175reference to the timer and then del the reference when you are
1176finished with the timer.
1177
1178Updated to 1.3.24 of SWIG. All of my big patches have been applied to
1179the main SWIG source tree, but unfortunatly there were also some bugs
1180added that affected the wxPython build and a few details in my
1181original patch were changed/removed, so we are still not free of
1182patches. A new patch for SWIG is located in the wxPython/SWIG
1183directory of the wxPython source tree. SWIG 1.3.24 plus this patch
1184should be used by anyone who is making custom modifications to
1185wxPython's .i files, or building their own extension modules or
1186etc. that need to interact with the wxPython swigged types. For the
1187morbidly curious, here are a few more details:
1188
1189 * Since it is now possible easily and simply share the SWIG type
1190 tables across modules I reverted to always using the stock SWIG
1191 runtime instead of my slightly hacked up version of it exported
1192 via the wxPython C API.
1193
1194 * The %name directive is now deprecated so I replaced most uses of
1195 it with a custom %Rename macro that uses %rename internally.
1196 These will evetually need to be replaced with a DocDecl macro
1197 when docstrings are added for those items.
1198
1199 * The "this" attribute of all SWIGged classes is no longer a
1200 string containing a "swigified pointer", but rather a custom
1201 built-in type that holds the real C pointer to the object and
1202 the type info. It can be converted to a string like the old
1203 value using str() or to the long integer value of the pointer
1204 using long().
1205
1206Added SetDefaultPyEncoding and GetDefaultPyEncoding functions which
1207will set/get the encoding used by wxPython to convert string or
1208unicode objects to/from wxString objects. Previously the default
1209Python encoding was always used, but unless the user had tweaked their
1210sitecustomize.py file it is always "ascii", which would result in
1211errors if the strings contained character codes >= 128.
1212SetDefaultPyEncoding will now allow you to control which encoding will
1213be used to do those conversions. The default encoding is set to the
1214value of `locale.getdefaultlocale()[1]` when wxPython is first
1215imported. Please see http://www.alanwood.net/demos/charsetdiffs.html
1216for information on the differences between the common latin/roman
1217encodings.
1218
1219Added wxStdDialogButtonSizer, which is a a special sizer that knows
1220how to order and position standard buttons in order to conform to the
1221current platform's standards. You simply need to add each `wx.Button`
1222to the sizer, and be sure to create the buttons using the standard
1223ID's. Then call `Realize` and the sizer will take care of the rest.
1224
1225wxMSW Toolbar: pass correct tool id (and not always -1) to the
1226EVT_TOOL_RCLICKED handler
1227
1228wxGTK: Applied patch for combo box SELECTED events (no longer get
1229lots of surplus events)
1230
1231wxGTK: Applied patch for proper menu highlight colour detection in
1232wx.SystemSettings.
1233
1234wxGTK: Commited scrollbar patch #1093339 which sends lineup, linedown
1235events based on intercepting the mouse down events.
1236
1237wxGTK: Applied patch #1102789 which solved conflicts between wxWidgets
1238and GTK+'s context menu code.
1239
1240wxGTK: Applied patch #1100327 for correct feedback from DND actions
1241(not all actions are allowed).
1242
1243Fixed memory leak in wxGrid::UpdateAttr[Rows][Or][Cols] (patch 1104355)
1244
1245For efficiency reasons, text controls no longer set the string for
1246each text updated event, but rather query for the string value only
1247when GetString is called from an event handler.
1248
1249Added wx.SL_INVERSE style which will cause wx.Slider to invert the min
1250and max ends of the slider.
1251
1252Several patches applied, such as #1111174, #1110252 and others, that
1253make the generic wx.TreeCtrl (used on wxGTK and wxMac) be more
1254conistent with the wxMSW native wx.TreeCtrl.
1255
1256XRCed:
1257 * Edit->Locate command (Ctrl-L) for quick selection of items.
1258 Works with event-handling controls (buttons, text fields) but
1259 not with labels/sizers.
1260 * Some improvements: relative paths for files supplied as command-
1261 line argument work correctly, notebook panels are highlighted
1262 better.
1263
1264wxMac: Fixed a long-standing issue where wxSlider controls with a
1265hardcoded size would misplace their labels behind the slider control.
1266
1267wx.HtmlListBox fixed so calling RefreshLine(s) will cause the data for
1268that line to be refetched from the overridden methods in the derived
1269class.
1270
1271The default DoGetBestSize now includes the difference (if any) between
1272the client size and total size of the window, (such as the size of
1273borders.) Code that sets the client size using the best size, or that
1274added extra space to sizers to compensate for this bug may need to be
1275changed.
1276
1277Can suppress themed notebook pages with the wxNB_NOPAGETHEME style or
1278setting system option msw.notebook.themed-background to 0.
1279
1280wxSyledTextCtrl updated to use Scintilla 1.62.
1281
1282Can now set the msw.window.no-clip-children system option to 1 to
1283eliminate weird refresh behaviour (delays between a window being
1284erased and repainted, giving a ghostly gradual-redraw effect). May be
1285a temporary 'fix' until properly fixed before 2.6.
1286
1287wxMac: Toolbar is now more native looking with borderless toolbar
1288buttons.
1289
1290wxMac: Switched wx.Bitmap to use newer Quartz object types and APIs
1291internally. This results in faster display and better alpha support.
1292
1293Added wx.DatePickerCtrl.
1294
1295wx.html.HtmlWindow now supports background images.
1296
1297Added wx.lib.gestures module from Daniel Pozmanter which supports
1298using Mouse Gestures in an application.
1299
1300wxGTK2: ENTER and LEAVE mouse events are now sent for multi-line text
1301controls.
1302
1303wxMSW: "Alt" key (VK_MENU) now results in WXK_ALT keyboard event, not
1304WXK_MENU
1305
1306Added modules from Peter Yared and Morgan Hua that implement the wx
1307Doc/View framework in pure Python code. See wx.lib.docview for the
1308base implementation and wx.lib.pydocview for Python-specific
1309extensions. There are also a couple sample applications located in
1310samples/docview.
1311
1312Added GetBitmap, GetIcon to wx.ImageList.
1313
1314wxGTK wx.Button.SetLabel no longer invalidates/resets the font.
1315
1316wx.Sizer.AddWindow, AddSizer, AddSpacer and etc. have now been
1317undeprecated at the request of Riaan Booysen, the Boa Constructor team
1318lead. Boa needs them to help keep track of what kind of item is being
1319managed by the sizer. They are now just simple compatibility aliases
1320for Add, and etc.
1321
1322The old C++ version of the OGL lib is no longer built by default. Use
1323the Python version in the wx.lib.ogl package instead.
1324
1325The wx.iewin module is no longer built by default. You can use the
1326wx.lib.iewin version instead.
1327
1328Fixed wx.BufferedPaintDC for scrolled windows to work whether the
1329buffer is covering only the client area or the full virtual area of
1330the scrolled window. By default it will assume that only the client
1331area is covered. This is different than the old behavior so to
1332indicate that the entire virtual area is covered simply add a
1333style=wx.BUFFER_VIRTUAL_AREA parameter.
1334
1335wx.gizmos.TreeListCtrl: Add support for the EVT_TREE_ITEM_GETTOOLTIP
1336event.
1337
1338Added Resize, SetRGBRect, Size, and GetOrFindMaskColour methods to
1339wx.Image.
1340
1341Added wx.Rect.IsEmpty
1342
1343wxGTK:
1344 - Corrected wx.ListBox selection handling
1345 - Corrected default button size handling for different themes
1346 - Corrected splitter sash size and look for different themes
1347 - Fixed keyboard input for dead-keys
1348
1349
1350
1351
13522.5.3.1
1353-------
1354* 9-Nov-2004
1355
1356wxMac focus and border refreshes corrected.
1357
1358Updated internal PNG library.
1359
1360wxMac fix for metal appearance on wx.ToolBar.
1361
1362wx.grid.Grid fix allowing DoGetBestSize to be called before CreateGrid
1363(which means that a min size doesn't need to be specified.)
1364
1365wxMac fix for not sending a native click to a control if it is not
1366enabled (does an enable itself)
1367
1368Added wx.lib.ogl.DrawnShape, and fixed various little bugs in the new
1369OGL.
1370
1371Added support to XRC and XRCed for the 3-state checkbox flags and also
1372for wx.ToggleButton. Updated the generic window styles supported by
1373XRCed.
1374
1375It is now possible to create "stock" buttons. Basically this means
1376that you only have to provide one of the stock IDs (and either an
1377empty label or a label that matches the stock label) when creating the
1378button and wxWidgets will choose the stock label to go with it
1379automatically. Additionally on the platforms that have a native
1380concept of a stock button (currently only GTK2) then the native stock
1381button will be used. For example, the following will result in a
1382button with "Cancel" as the label and if run on wxGTK2 then there will
1383also be an image of a red X::
1384
1385 b = wx.Button(parent, wx.ID_CANCEL)
1386
1387
1388Added wx.lib.ticker.Ticker class from Chris Mellon.
1389
1390Fix some incorrect clipping regions in wxSTC on wxGTK.
1391
1392Added wrapper for wx.grid.Grid.GetOrCreateCellAttr.
1393
1394Removed my copy of distutils from the wxPython source tree. Now that
1395I am no longer doing builds on Python 2.1 the newest distutils is no
1396longer needed. (There is still one small bug in Python 2.2 distutils
1397on win32, but it is easily worked around.) This sovles the problem of
1398incorrect builds on some systems where the system installed distutils
1399has been patched to behave slightly differently, for example SuSE on
1400x86_64 or Chandler's build.
1401
1402Updated to SWIG 1.3.22 (plus my patch.) See wxPython/SWIG/README.txt
1403in the source tree if you need to use SWIG when building your own copy
1404of wxPython, or other extension modules that need to integrate with
1405the wxPython modules.
1406
1407Added wx.Frame.RequestUserAttention which, if the platform suports it,
1408will do something (such as flash the task bar item) to suggest to the
1409user that they should look at that window.
1410
1411"Fixed" wx.grid.Grid.SetDefaultEditor and SetDefaultRenderer by making
1412them register the editor or renderer for the "string" data type.
1413
1414Added depth param to wx.Image.ConvertToBitmap.
1415
1416Extended the wx.calendar.CalendarCtrl class with methods that get/set
1417a Python datetime or date object. (These will only work with Python
14182.3+) The methods are PySetDate, PyGetDate, PySetLowerDateLimit,
1419PySetUpperDateLimit, PySetDateRange, PyGetLowerDateLimit, and
1420PyGetUpperDateLimit. Also, CalendarEvent was extended with PySetDate
1421and PyGetDate methods.
1422
1423wxMSW: SetBackgroundColour on a wx.Choice or a wx.ComboBox will now
1424also set the colour of the dropdown.
1425
1426wxMac: MessageDialog now supports wx.NO_DEFAULT style
1427
1428wxMSW: added AssociateHandle and DissociateHandle to wx.Window
1429
1430wxMac: fix for toolbar tooltips
1431
1432wx.Sizer.Show (and Hide) now take an optional parameter specifying if
1433the item to be shown should be searched for recursivly in subsizers,
1434and return a boolean value indicating if the item was found.
1435
1436wxMSW: fixed MaximizeEvent generation in wx.Frame
1437
1438wxMSW: fixed sending duplicate EVT_COMBOBOX events
1439
1440Smoother time estimation updates in wx.ProgressDialog (patch 992813)
1441
1442Made wx.Listbook events more consistent with wx.Notebook ones (patch
14431001271)
1444
1445Fixed rounding errors in variable status bar panes widths computation
1446(patch 1030021)
1447
1448Added possibility to specify printer bin (patch 910272)
1449
1450wxMSW: fixed wx.ListCtrl's SetWindowStyleFlag() to not remove
1451WS_VISIBLE; also refresh the control automatically (closes bug
14521019440)
1453
1454Added wx.Choicebook, yet another notebook-like control.
1455
1456wxMSW: Make radiobutton tab behaviour the same on MSW as in standard
1457MSW app, i.e. tab into the activated, not necessarily the first radio
1458button.
1459
1460Added limited support for wxEventLoop (you can't derive from a
1461wx.PyEventLoop version yet...) Updated and moved the sample showing
1462how to replace the MainLoop to samples/mainloop/mainloop.py.
1463
1464The C++ xrc lib has been moved out of contrib and into the core, so it
1465is always built by default. wxPython's build has also changed
1466accordingly and will build the xrc module as part of the core set of
1467modules built by default. If you were axplicitly using BUILD_XRC then
1468it will no longer be recognized as a build option, otherwise you
1469should notice no difference.
1470
1471wxMac: Fixed radio toolbar buttons to correctly untoggle the others
1472when a new one is selected.
1473
1474wxMac: Fixed GetLineLength and GetLineText for MLTE text controls
1475
1476wxMac: wx.TaskBarIcon is implemented by allowing you to change the
1477app's icon on the Dock and also specifying a menu that should be
1478merged with the normal dock popup menu. See the MigrationGuide for
1479more details and a warning.
1480
1481Added wx.TopLevelWindow.IsActive() which tells you if the frame or
1482dialog is or containts the active window with the keyboard focus.
1483
1484Added ability to create a font based on pixel size rather than point
1485size via the FontFromPixelSize constructor.
1486
1487Updated the Scintilla used by StyledTextCtrl to version 1.61
1488
1489Improved image HitTest for TreeListCtrl.
1490
1491Added wx.App.IsMainLoopRunning.
1492
1493wxGTK: Make wxComboBox spit out a bit fewer surplus events when
1494holding down the mouse button.
1495
1496wxGTK: Enable key based navigation through notebook tabs as in the
1497native control with Left and right keys. Support for vetoing.
1498
1499FloatCanvas updates from Chris Barker
1500
1501PyPlot updates from Gordon Williams:
1502 - Added bar graph demo
1503 - Modified line end shape from round to square.
1504 - Removed FloatDCWrapper for conversion to ints and ints in
1505 arguments
1506 - Imported modules given leading underscore to name.
1507 - Added Cursor Line Tracking and User Point Labels.
1508 - Demo for Cursor Line Tracking and Point Labels.
1509 - Size of plot preview frame adjusted to show page better.
1510 - Added helper functions PositionUserToScreen and
1511 PositionScreenToUser in PlotCanvas.
1512 - Added functions GetClosestPoints (all curves) and GetClosestPoint
1513 (only closest curve) can be in either user coords or screen
1514 coords.
1515
1516MaskedEdit updates from Will Sadkin:
1517 - Added '*' mask char that means "all ansii chars" (ords 32-255)
1518 - Added proper unicode support to masked controls and wx.tools.dbg
1519 - Fixed two reported missing import bugs introduced by package
1520 creation
1521 - Converted masked package doc strings to reST format for better
1522 epydoc support
1523 - lots of doc string improvements and function hiding to better
1524 reflect package's public contents.
1525
1526Restructured the installer packages slightly to help facilitate having
1527multiple versions of wxPython installed at the same time. See the
1528Migrarion Guide for more information.
1529
1530Applied patch from Pim Van Heuven that modifies 4 files:
1531 - wxPython/demo/ListCtrl_edit.py (new demo)
1532 - wxPython/demo/Main.py (include new demo in demo app)
1533 - wxPython/wx/lib/mixins/listctrl.py (several improvements to
1534 TextEditMixin)
1535 - wxPython/wx/lib/wxpTag.py (some small fixes)
1536
1537Added (thanks to Kevin Ollivier!) wrappers for wx.WebKitCtrl for the
1538OSX build. Other platforms will raise an exception if you try to use
1539it.
1540
1541wxPython on OSX can now be built in Unicode mode, can support multiple
1542version installs, and comes with an uninstaller script.
1543
1544
1545
1546
1547
15482.5.2.8
1549-------
1550* 27-Aug-2004
1551
1552Predominantly a bug-fix release.
1553
1554 * Fixed fatal error due to improper wrapping of wx.FSFile.
1555
1556 * Fixed return type of EditableListBox.GetListCtrl
1557
1558 * Give generic tree and list controls a DoGetBestSize so they play
1559 nicer with sizers when there is no minimal size.
1560
1561 * Some tweaks in the demo and samples to correct layout, some
1562 flicker problems, and namespace use.
1563
1564 * Add wx.Image.ConvertAlphaToMask
1565
1566 * Minor corrections in wx.lib.dialogs
1567
1568 * wx.FileHistory constructor now accepts the documented 2nd
1569 parameter.
1570
1571 * Corrections for exceptions in the new ogl
1572
1573 * Fixed XRCed to not use reparenting of windows to implement caching
1574 of property panels, since Reparent on wxMac is not implemented.
1575
1576 * Add support for wxTAB_TRAVERSAL to the XRC handler for
1577 wxScrolledWindow.
1578
1579 * Add support for all wxListBox styles to the XRC handler for
1580 wxCheckListBox.
1581
1582 * Fix for wx.Listbook.DeleteAllPages to really delete everything.
1583
1584 * wxGTK2 now supports alpha blended bitmap drawing
1585
1586 * Made wx.grid.Grid play nicer with sizers.
1587
1588 * etc.
1589
1590
1591
1592
15932.5.2.7
1594-------
1595* 14-Aug-2004
1596
1597wx.ADJUST_MINSIZE is now the default behaviour for window items in
1598sizers. This means that the item's GetMinSize and/or GetBestSize will
1599be called when calculating layout and the return value from that will
1600be used for the minimum size used by the sizer. The wx.FIXED_MINSIZE
1601flag was added that will cause the sizer to use the old behaviour in
1602that it will *not* call the window's methods to determine the new best
1603size, instead the minsize that the window had when added to the sizer
1604(or the size the window was created with) will always be used. Please
1605see the Sizers section in the Migration Guide for more details.
1606
1607Added new MaskedEditControl code from Will Sadkin. The modules are
1608now locaed in their own sub-package, wx.lib.masked. Demos updated.
1609
1610The changes that implemented the incompatible wx.DC methods in 2.5.1.5
1611have been reverted. The wx.DC methods are now compatible with the 2.4
1612implemetation. In addition a set of renamed methods have been added
1613that take wx.Point and/or wx.Size objects instead of individual
1614parameters.
1615
1616Added wx.lib.mixins.listctrl.TextEditMixin, a mixin class that allows
1617all columns of a wx.ListCtrl in report mode to be edited.
1618
1619Deprecated the wx.iewin module.
1620
1621Deprecated the wx.Sizer.AddWindow, AddSizer, AddSpacer methods as well
1622as their Insert* and Prepend* counterparts.
1623
1624Added a generic StaticBitmap class in wx.lib.statbmp for the same
1625reasons that stattext was created, so it could be mouse sensitive on
1626all platforms like normal windows. Also updated stattext.py and
1627buttons.py to handle attribute (font & colour) defaults and
1628inheritance the new way. If you have custom controls of your own you
1629should review stattxt.py or one of the others to see how it is to be
1630done.
1631
1632wx.InitAllImageHandlers is now an empty function that does nothing but
1633exist for backwards compatibility. The C++ version is now called
1634automatically when wxPython is initialized. Since all the handlers
1635are included in the wxWidgets shared library anyway, this imposes only
1636a very small amount of overhead and removes several unneccessary
1637problems.
1638
1639Replaced wx/lib/pubsub.py with a version that uses weak references to
1640track the subscribers, plus other fixes/additions. Thanks go to
1641Oliver Schoenborn and Robb Shecter.
1642
1643wxGTK now uses gtk_init_check so wxPython can raise an exception if
1644there is no DISPLAY available or other initializaion problem.
1645
1646wx.GetKeyState now has an implementation for wxGTK and is able to
1647detect the up/down or toggle state of modifier and toggle keys.
1648
1649The LC_NUMERIC locale is now reset back to "C" (compatibility) when
1650running on wxGTK to work around the fact that GTK requires the locale
1651to be set to the system settings but Python depends on LC_NUMERIC
1652remaining compatible with "C".
1653
1654Switched gizmos.TreeListCtrl to the newer version of the code from the
1655wxCode project.
1656
1657OGL is dead! LONG LIVE OGL! (Oops, sorry. A bit of my dramatic side
1658leaked out there...) The wx.ogl module has been deprecated in favor
1659of the new Python port of the OGL library located at wx.lib.ogl
1660