Commit Graph

349 Commits

Author SHA1 Message Date
Vadim Zeitlin
5cb3a695e0 Add wxTreeCtrl::SelectChildren() method.
Add MSW and generic implementation, documentation and change to the sample
showing it.

Closes #11620.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-26 12:43:39 +00:00
Vadim Zeitlin
f19259fce0 Invalidate stored wxTreeItemIds when the corresponding item is deleted in wxMSW.
m_htSelStart and m_htClickedItem stored in wxTreeCtrl must be invalidated when
the item they point to is deleted (which also happens when all the items are
deleted), otherwise the selection doesn't behave correctly after doing it.

Closes #11619.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63170 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-18 00:28:47 +00:00
Vadim Zeitlin
d6d857b124 Generate wxEVT_KEY_DOWN events for navigation keys in wxMSW wxTreeCtrl.
We only generated wxEVT_COMMAND_TREE_KEY_DOWN events for the keys which can be
used for tree control navigation and which are handled specially in the code
but not the wxEVT_KEY_DOWN ones. This was inconsistent with the other keys and
incompatible with wx 2.8 and other ports, so generate both events unless the
wxEVT_KEY_DOWN one was handled by the user code.

Closes #11621.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63169 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-18 00:28:41 +00:00
Vadim Zeitlin
3c8cbc12ca Improve hit detection in wxMSW wxTreeCtrl with wxTR_FULL_ROW_HIGHLIGHT style.
When wxTR_FULL_ROW_HIGHLIGHT is used, the item visually takes up the entire
breadth of the window so clicking both to the left or to the right of the item
should have the same effect as clicking on it.

So add a MSWIsOnItem() helper which tests for whether a point is above the
item correctly and use it in order to:

1. In multi selection mode, allow clicking anywhere to select the item(s)
   when Ctrl or Shift is pressed (Closes #11598).
2. Generate activation event when clicking to the right of the item too
   (Closes #11602).
3. Detect item bounds correctly in WM_LBUTTONUP handler (although it's
   not really clear what does this code do and hence what problem does this
   fix...).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-07 13:16:01 +00:00
Vadim Zeitlin
d301c44093 Fix selection events generation in multi-select wxTreeCtrl.
Only deselect the items when the mouse is released if really necessary: add a
flag indicating when it is instead of trying to deduce it in the mouse up
handler.

Closes #11099 (thanks to Jonathan Liu).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-30 17:24:53 +00:00
Vadim Zeitlin
f2fec40d2c Don't generate duplicated events for clicks on tree +/- buttons.
In multiple selection mode we process mouse events manually in wxTreeCtrl
itself and already take care of mouse clicks on the buttons there so don't
pass them on to the base class which would generate another event.

Closes #11098 (thanks to Jonathan Liu).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61783 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-30 17:24:45 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
3c01c59511 implement wxTreeCtrl::GetFocusedItem() for wxMSW too (see #10859)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61138 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-19 23:48:50 +00:00
Vadim Zeitlin
8664669368 make wxTreeCtrl::SelectItem(false) work in single selection controls under MSW (fixing the recently added unit test); also set the previously selected item in the selection changing/changed messages
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60921 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-06 22:56:57 +00:00
Vadim Zeitlin
d2f434e428 (harmless) Borland release build warning fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60348 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-25 14:07:38 +00:00
Vadim Zeitlin
7dac12efa7 more bug fixes to multiple selection mode (see #626, comment 47)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-18 10:01:36 +00:00
Vadim Zeitlin
47e105413f fix generation of key events with Alt pressed broken by r59369 (see #626)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-07 14:07:45 +00:00
Vadim Zeitlin
aa8166dd51 fix duplicate events for selection keys after the last change (see #626)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-06 16:13:23 +00:00
Vadim Zeitlin
25f701e632 don't use WPARAM in the header (build fix after r59336)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-05 16:32:56 +00:00
Vadim Zeitlin
c7d9c476ea fix multiple problems with selection in controls with wxTR_MULTIPLE style (closes #626)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59336 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-05 14:13:19 +00:00
Vadim Zeitlin
2ec94d6b96 add missing stdcall to fix crash when using state image lists after r58572
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58959 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-17 09:57:10 +00:00
Vadim Zeitlin
c0c133e13b add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-08 11:45:59 +00:00
Vadim Zeitlin
c27dce1818 load ImageList_Copy() dynamically to allow wx apps to start up under Win95 (state image display in wxTreeCtrl still won't work though)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-31 21:54:11 +00:00
Vadim Zeitlin
d57f1dd7fe undo r58380 as it breaks tree control background repainting (see #9832)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58412 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-25 19:07:11 +00:00
Vadim Zeitlin
838ab05ede allow using wxBG_STYLE_CUSTOM even with the native controls and use it in wxTreeCtrl (see #9832)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58380 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-25 11:40:41 +00:00
Vadim Zeitlin
fa97ee2490 implement wxTreeCtrl::ItemHasChildren() properly for virtual root item; added unit test for it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58177 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-17 13:16:25 +00:00
Vadim Zeitlin
ae322a4870 undid change accidentally committed as part of r57093 but which didn't have anything to do with it and resulted in #10253
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57497 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-22 13:34:12 +00:00
Vadim Zeitlin
56873923f3 extract (and expand and clean up and document) the header window implementation used inside the generic wxDataViewCtrl in a separate wxHeaderCtrl class which could be reused in (generic) wxListCtrl and, most importantly, wxGrid later
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57093 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-03 21:53:10 +00:00
Vadim Zeitlin
0e2ad3233b don't reuse the double click handled in activation event handler for toggling the item (#9761)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57025 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-29 14:49:47 +00:00
Robert Roebling
4754ab1630 Next part of tree state icon patches
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-24 12:48:01 +00:00
Robert Roebling
03966fcb3f #9591: Item state (icons) for wxTreeCtrl on any platform
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-16 17:50:40 +00:00
Vadim Zeitlin
4a36036eb2 don't ask for bounding rectangle of a hidden root, this fixes a crash introduced by the previous patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53084 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-07 20:12:57 +00:00
Vadim Zeitlin
7e45c15989 refresh the item after adding its first child as, apparently, otherwise the '+' is not always drawn immediately (patch 1927179)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53051 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-06 15:37:52 +00:00
Benjamin Williams
396f85bac5 vista tree crash fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52597 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-17 22:05:01 +00:00
Václav Slavík
937013e0fd 1. added wxEvtHandler::SafelyProcessEvent() and wxWindow::HandleWindowEvent() to correctly handle exceptions in even handlers in wxGTK
2. use HandleWindowEvent() everywhere as more obvious and convenient shortcut for GetEventHandler()->ProcessEvent(); also for consistency with wxGTK where it's required

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50329 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-29 17:00:58 +00:00
Vadim Zeitlin
6719c06a97 no real changes, just some cleanup: add wxIsAltDown() in addition to the existing wxIsShift/CtrlDown() and wxIsAnyModifiedDown() to test for all of them at once (slightly modified patch 1833235)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50013 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-17 00:24:07 +00:00
Julian Smart
20bdddadd5 Don't suppress accelerators that include Enter just because a tree control is focused
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-16 13:12:20 +00:00
Vadim Zeitlin
e0bf68d697 unselect all selected items, not just the currently focused one, when the mouse is right clicked outside of selection to minimize user confusion (patch 1702201, bug 1676471)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49916 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-13 17:18:58 +00:00
Benjamin Williams
5fe302ef74 bug fix for vista in multi-selection tree
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-04 21:26:56 +00:00
Vadim Zeitlin
cb776b6671 set the focus to the tree before generating the selection change events to have a more expected (and compatible with other platforms) order of tree and focus events
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-01 20:26:11 +00:00
Vadim Zeitlin
5188000b1d refresh the item being collapsed when using comctl32.dll v6 as otherwise parts of its selection rectangle may be left on screen
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49478 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-26 23:24:06 +00:00
Vadim Zeitlin
f73eddd2a5 made wxTreeCtrl::GetNextVisible() behave in the same way in Win32 as in the generic version and implemented GetPrevVisible() in the generic version
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49085 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-07 21:58:51 +00:00
Vadim Zeitlin
0edeeb6d96 use wxWindow::NewControlId() instead of wxNewId() to avoid clashes with user-defined ids; bug fixes in wxMSW for negative menu and toolbar items ids
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48840 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-20 22:58:55 +00:00
Václav Slavík
e0a050e347 more changes to make wx compile without implicit wxString->char* conversion (for STL build)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46553 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-20 07:44:45 +00:00
Vadim Zeitlin
c4cd8712cd cancel dragging if Esc is pressed (patch 1733657)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-09 10:50:40 +00:00
Paul Cornett
68d9be05da build fix for wxUSE_DRAGIMAGE==0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45841 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-05 18:48:56 +00:00
Vadim Zeitlin
7549148b56 fix SelectItem() for single selection case which was broken by recent changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45612 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-23 22:08:41 +00:00
Vadim Zeitlin
b8e3f1cfb7 don't let def window proc start another drag operation if we just started one ourselves for a multiselection tree (replaces patch 1702133)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45568 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-21 21:14:59 +00:00
Stefan Csomor
70cab5b769 compile guard
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-11 15:37:40 +00:00
Vadim Zeitlin
cc87a04c9d send selection events when Ctrl-clicking an item repeeatedly in a multiselection tree
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45392 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-10 23:56:20 +00:00
Vadim Zeitlin
8a536fa330 don't crash when attempting to select hidden tree root (bug 1681118)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45134 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-30 12:57:15 +00:00
Vadim Zeitlin
2a69b4e849 assert if AddRoot() is called twice for a wxTR_HIDE_ROOT tree
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45061 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-26 13:07:15 +00:00
Václav Slavík
c9f7896861 first phase of transition to unified Unicode build:
1. changed c_str() to return wxCStrData (implicitly convertible to wxChar*)
2. added template type-safe wrappers for vararg functions
3. added wxUniChar class representing single Unicode character
4. changed wxString::operator[] and wxString::iterator to return wxUniChar


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-17 10:26:10 +00:00
Vadim Zeitlin
c1dc9f8394 removed WXWIN_COMPATIBILITY_2_4 from common and wxMSW files (patch 1675546)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-07 11:35:04 +00:00
Julian Smart
72e610241a Restored drag position mysteriously removed in revision 1.233
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44363 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-02-05 14:14:46 +00:00