- int DoGetItemImageFromData(const wxTreeItemId& item,
- wxTreeItemIcon which) const;
- void DoSetItemImageFromData(const wxTreeItemId& item,
- int image,
- wxTreeItemIcon which) const;
- void DoSetItemImages(const wxTreeItemId& item, int image, int imageSel);
+ // obtain the user data for the lParam member of TV_ITEM
+ class wxTreeItemParam *GetItemParam(const wxTreeItemId& item) const;
+
+ // update the event to include the items client data and pass it to
+ // HandleWindowEvent(), return true if it processed it
+ bool HandleTreeEvent(wxTreeEvent& event) const;
+
+ // pass the event to HandleTreeEvent() and return true if the event was
+ // either unprocessed or not vetoed
+ bool IsTreeEventAllowed(wxTreeEvent& event) const
+ {
+ return !HandleTreeEvent(event) || event.IsAllowed();
+ }
+
+ // 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);
+
+
+ // data used only while editing the item label:
+ wxTextCtrl *m_textCtrl; // text control in which it is edited
+ wxTreeItemId m_idEdited; // the item being edited
+
+private:
+ // the common part of all ctors
+ void Init();
+
+ // helper functions
+ bool DoGetItem(wxTreeViewItem *tvItem) const;
+ void DoSetItem(wxTreeViewItem *tvItem);
+
+ void DoExpand(const wxTreeItemId& item, int flag);
+
+ void DoUnselectAll();