virtual wxTreeItemId GetRootItem() const;
virtual wxTreeItemId GetSelection() const;
virtual size_t GetSelections(wxArrayTreeItemIds& selections) const;
+ virtual wxTreeItemId GetFocusedItem() const;
virtual wxTreeItemId GetItemParent(const wxTreeItemId& item) const;
virtual wxTreeItemId GetFirstChild(const wxTreeItemId& item,
return !HandleTreeEvent(event) || event.IsAllowed();
}
- // handle a key event in a multi-selection control
+ // generate a wxEVT_KEY_DOWN event from the specified WPARAM/LPARAM values
+ // having the same meaning as for WM_KEYDOWN, return true if it was
+ // processed
+ bool MSWHandleTreeKeyDownEvent(WXWPARAM wParam, WXLPARAM lParam);
+
+ // handle a key event in a multi-selection control, should be only called
+ // for keys which can be used to change the selection
//
// return true if the key was processed, false otherwise
bool MSWHandleSelectionKey(unsigned vkey);
void DoExpand(const wxTreeItemId& item, int flag);
+ void DoSelectItem(const wxTreeItemId& item, bool select = true);
+ void DoUnselectItem(const wxTreeItemId& item);
+ void DoToggleItemSelection(const wxTreeItemId& item);
+
void DoUnselectAll();
void DeleteTextCtrl();
// and the tree has wxTR_HIDE_ROOT style)
bool IsHiddenRoot(const wxTreeItemId& item) const;
+ // clears/sets the currently focused item
+ void ClearFocusedItem();
+ void SetFocusedItem(const wxTreeItemId& item);
+
+ // check if the given flags (taken from TV_HITTESTINFO structure)
+ // indicate a position "on item": this is less trivial than just checking
+ // for TVHT_ONITEM because we consider that points to the left and right of
+ // item text are also "on item" when wxTR_FULL_ROW_HIGHLIGHT is used as the
+ // item visually spans the entire breadth of the window then
+ bool MSWIsOnItem(unsigned flags) const;
+
// the hash storing the items attributes (indexed by item ids)
wxMapTreeAttr m_attrs;
// whether focus was lost between subsequent clicks of a single item
bool m_focusLost;
+ // set when we are changing selection ourselves (only used in multi
+ // selection mode)
+ bool m_changingSelection;
+
// whether we need to trigger a state image click event
bool m_triggerStateImageClick;
+ // whether we need to deselect other items on mouse up
+ bool m_mouseUpDeselect;
+
friend class wxTreeItemIndirectData;
friend class wxTreeSortHelper;