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