Chandler's wx modifications
David Surovell
Chandler GUI Frameworks Engineer, OSA Foundation
10 April 2006
This page describes the Chandler-specific additions and modifications to be applied to stock wxPython and wxWidgets releases.
The Chandler application makes few (if any) demands of the wxPython / wxWidgets frameworks for features that are outside of typical desktop application behavior. As such, we strive to work with standard wxWidgets releases. However, there are bugs and unfinished features within wxWidgets that need to be addressed in order for Chandler to meet its specified functional requirements. To this end, we implement various missing features and bug fixes and submit them to the wxWidgets community, either as patches entered in SourceForge or via dialogue with wx maintainers. Historically, this has been viable for Chandler development as well as beneficial to the wxWidgets community. At any given time, however, there are various source-level changes from wx releases that reside in the Chandler "/internal/wx" SVN repository that haven't yet been accepted by the wx (wxPython and wxWidgets) development communities. This work requires significant effort from both sides, and can be broken down as follows:
- OSAF engineers are required to:
- submit to informal code review
- develop significant supporting demo and documentation materials
- wx community engineers (with commit privileges) are required to:
- review submission materials
- apply and test the patches
- check in the patches
- verify the build
Currently, the change list is as follows:
- wxGrid changes:
- John's wxGrid feature addition - no cursor mode
- John's wxGrid feature addition - selection tracks changes to cursor
- John's wxGrid bug fix - fails when number of rows or columns changes
- John's (wxMSW-only?) wxGrid::dtor child wxGridWindow crash fix
- src/generic/grid.cpp
- Bug 4754
- (submission plans TBD - needs rewrite)
- David's wxMac bug fix - wxGrid "blank editor"
- src/generic/grid.cpp
- Bug 3854
- (submission plans TBD)
- David's wxMac bug fix - wxGridSelection extra erase on selection change
- src/generic/gridsel.cpp
- Bug 4157
- (submission plans TBD)
- wxPython changes:
- David's bump of wxPython version to "270" (and/or "262")
- wxPython/config.py", wxPython/wx/build/config.py
- (should happen in wx of its own accord...)
- miscellaneous changes:
- Reid's wxMac - feature additon - wxDC support for native antialiasing
- src/mac/carbon/dccg.cpp, include/wx/mac/carbon/dc.h, include/wx/dc.h
- (submission plans TBD)
- David's addition for wxMac wxSettings support for new MacOSX v10.3 highlight theme color
- David's wxMac - wxToolbar removal of obligatory border for non-root toolbars
- src/mac/carbon/toolbar.cpp
- custom Chandler feature request: currently switched off in OnPaint
- (submission plans TBD - not likely)
- David's addition for wxMSW native WinXP double-buffering
- src/msw/toplevel.cpp (2 places), include/wx/msw/missing.h
- include/wx/msw/setup0.h, include/wx/msw/chkconf.h
- (updated on 11-Nov-05; ready for submission to wx)
- David's wxExpat v2.0 update
- expat/*
- (updated on 06-Feb-06; needs work for submission to wx)
- changes to fix Chandler build issues (not for wx submission):
- wxMSW bakefile problem - affects many "makefile.*" files
- many files need to reference libs with names like "wx26..." vs. "wx27..."
- these hacks will be removed when we fix our bakefile problems
- see Bug 4670 for more details
- Makefile.in
- hack to suppress wxpresets-related build failure
- additions for OSAF classes: minical, colheader
- include/wx/msw/setup0.h
- made default of wxUSE_UNICODE=1
- disabled wxUSE_DATAVIEWCTRL due to mingwin build issues
- John's wxMSW MSVC build project files
- build/msw/wx_osaf.sln, lots of "*.vcproj" files
- minor changes (not applied):
- configure.in - removed deadly blank lines - processing may be fixed in bakefile 0.1.9
- src/generic/grid.cpp - debugging code (nopped out)
- src/generic/splitter.cpp - debugging code (nopped out)
- 0-2 others
- minor changes accepted / applied:
- include/wx/mac/carbon/ - dc.h, textctrl.h, window.h
- src/generic/ - dcpsg.cpp, grid.cpp, gridsel.cpp, listctrl.cpp, toolbkg.cpp
- src/mac/carbon/ - "*.cpp"
- src/msw/ - evtloop.cpp, mediactrl.cpp, tbar95.cpp
- src/unix/ - gsockets.cpp, mimetype.cpp
- patches recently accepted / applied:
- David's wxMac toolbar OnPaint refactorization
- src/mac/carbon/toolbar.cpp
- David's fix for wxMac DrawRoundedRect curvature problem
- David's fix for wxPython wxHTML v2.7 changes (wxHtmlHelp class, JS refactoring)
- David's fix for wxMac crash on wxSlider without SL_LABEL style
- src/mac/carbon/slider.cpp
- David's fix for wxWidgets wxFontMapper:: change
- David's improvements to GIF file i/o error handling
- src/common/gifdecod.cpp, contrib/src/animate/animate.cpp, contrib/include/wx/animate/animate.h
- regression via wxPythonDemo - GIF Animation and SVN-corrupted GIFs
- David's fix for wxGTK SetInvokingWindow link error
- David's fix for wxMac mishandling of separator menu items
- src/mac/carbon/menuitem.cpp
- David's fixes for removal of wx v2.4 compatibility
- wxPython/src/*.py (4-5 files)
- David's fix for wxPython kybd. constant collisions with wxWidgets/include/wx/defs.h
- David's addition to empty wxPython wxMenuItem.SetBitmaps stub function
- David's refactoring of common code for menu UpdateUI handling
- supporting fix for lack of wxMac UpdateUI support for menu events with no associated wxFrameWindow
- src/common/framecmn.cpp, src/common/menucmn.cpp, include/wx/menu.h
- David's fix (to wxPython) for wxWidgets v2.7.0 wxGetFreeMemory change
- wxPython/src/_functions.i
- David's fix for wxPython treelistcntl compilation problems (improper "long" casts)
- wxPython/contrib/gizmos/wxCode/src/treelistcntl.cpp
- Jed and David's fixes for wxMSW toolbar "tool icon gray box" problem
- David's fix for wxMSW memory leak in wxToolbar::CreateDisabledImageList
- David's fix for lack of wxMac wxClipboard support for custom clipboard data flavors
- src/mac/carbon/clipbrd.cpp
- David's fix for wxPython v2.7 wxWindow changes
- David's fix of compilation problem from SF patch 1205869
- David's wxWindowGTK::dtor bug fix
- Arel and David's additions to support CoreGraphics stroke/fill patterns
- David's wxMac toolbar "overflow menu handler" bug fix
- src/mac/carbon/toolbar.cpp
- Arel's wxMac text control DoSelectAll bug fix
- src/mac/carbon/textctrl.cpp
- David's derivation of Stefan Csomor's wxMac native toolbar implementation
- src/mac/carbon/toolbar.cpp, include/wx/mac/carbon/toolbar.h
- David's wxMac text control bug fix, context menu addition
- src/mac/carbon/textctrl.cpp, include/wx/mac/carbon/textctrl.h
- John and David's wxSystemSettingsNative changes to remove 2 calls to deprecated LMGetHiliteRGB
- src/mac/carbon/settings.cpp
- John's wxImage color rotation support
- src/generic/image.cpp, include/wx/image.h, docs/latex/wx/image.tex
- new classes (submission plans TBD)
- for each class
- modified build files for new class inclusion:
- makefile.in, build/msw/wx.sln, build/bakefiles/files.bkl, wxPython/setup.py
- wxPythonDemo additions
- David's wxColumnHeader class and demo
- Jed's wxMinical class