X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c193b707eb53c05fba213449a271bf01c7279575..904ec517d32ae8ed7b45bf69d94892eca0eac05a:/include/wx/msw/treectrl.h diff --git a/include/wx/msw/treectrl.h b/include/wx/msw/treectrl.h index 213b4934ff..313018797d 100644 --- a/include/wx/msw/treectrl.h +++ b/include/wx/msw/treectrl.h @@ -21,6 +21,7 @@ #endif #include "wx/textctrl.h" +#include "wx/dynarray.h" #ifdef __GNUWIN32__ // Cygwin windows.h defines these identifiers @@ -121,6 +122,8 @@ protected: long m_itemId; }; +WX_DEFINE_ARRAY(wxTreeItemId, wxArrayTreeItemIds); + // ---------------------------------------------------------------------------- // wxTreeItemData is some (arbitrary) user class associated with some item. The // main advantage of having this class (compared to old untyped interface) is @@ -275,7 +278,8 @@ public: // if 'recursively' is FALSE, only immediate children count, otherwise // the returned number is the number of all items in this branch - size_t GetChildrenCount(const wxTreeItemId& item, bool recursively = TRUE); + size_t GetChildrenCount(const wxTreeItemId& item, + bool recursively = TRUE) const; // navigation // ---------- @@ -288,6 +292,12 @@ public: // get the item currently selected (may return NULL if no selection) wxTreeItemId GetSelection() const; + // get the items currently selected, return the number of such item + // + // NB: this operation is expensive and can take a long time for a + // control with a lot of items (~ O(number of items)). + size_t GetSelections(wxArrayTreeItemIds& selections) const; + // get the parent of this item (may return NULL if root) wxTreeItemId GetParent(const wxTreeItemId& item) const; @@ -365,6 +375,8 @@ public: // remove the selection from currently selected item (if any) void Unselect(); + // unselect all items (only makes sense for multiple selection control) + void UnselectAll(); // select this item void SelectItem(const wxTreeItemId& item); // make sure this item is visible (expanding the parent item and/or @@ -445,6 +457,10 @@ public: virtual bool MSWCommand(WXUINT param, WXWORD id); virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); + // get/set the check state for the item (only for wxTR_MULTIPLE) + bool IsItemChecked(const wxTreeItemId& item) const; + void SetItemCheck(const wxTreeItemId& item, bool check = TRUE); + protected: // SetImageList helper void SetAnyImageList(wxImageList *imageList, int which); @@ -469,6 +485,8 @@ private: int image, int selectedImage, wxTreeItemData *data); + void DoSetItemImages(const wxTreeItemId& item, int image, int imageSel); + void DeleteTextCtrl(); DECLARE_DYNAMIC_CLASS(wxTreeCtrl)