X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bf41d9034a22278bc5cc1d204478c24aace78d55..a1061906dd3e6594753bf99fdedde7c72d9ca12e:/include/wx/treectrl.h diff --git a/include/wx/treectrl.h b/include/wx/treectrl.h index a2c307834c..129333ca74 100644 --- a/include/wx/treectrl.h +++ b/include/wx/treectrl.h @@ -22,15 +22,15 @@ #include "wx/control.h" #include "wx/treebase.h" -#include "wx/textctrl.h" // wxTextCtrl::ms_classinfo used through CLASSINFO macro +#include "wx/textctrl.h" // wxTextCtrl::ms_classinfo used through wxCLASSINFO macro -class WXDLLEXPORT wxImageList; +class WXDLLIMPEXP_FWD_CORE wxImageList; // ---------------------------------------------------------------------------- // wxTreeCtrlBase // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTreeCtrlBase : public wxControl +class WXDLLIMPEXP_CORE wxTreeCtrlBase : public wxControl { public: wxTreeCtrlBase() @@ -118,12 +118,18 @@ public: // get the item's font virtual wxFont GetItemFont(const wxTreeItemId& item) const = 0; + // get the items state + int GetItemState(const wxTreeItemId& item) const + { + return DoGetItemState(item); + } + // modifiers // --------- // set items label virtual void SetItemText(const wxTreeItemId& item, const wxString& text) = 0; - // get one of the images associated with the item (normal by default) + // set one of the images associated with the item (normal by default) virtual void SetItemImage(const wxTreeItemId& item, int image, wxTreeItemIcon which = wxTreeItemIcon_Normal) = 0; @@ -156,6 +162,9 @@ public: virtual void SetItemFont(const wxTreeItemId& item, const wxFont& font) = 0; + // set the items state (special state values: wxTREE_ITEMSTATE_NONE/NEXT/PREV) + void SetItemState(const wxTreeItemId& item, int state); + // item status inquiries // --------------------- @@ -172,10 +181,8 @@ public: virtual bool IsSelected(const wxTreeItemId& item) const = 0; // is item text in bold font? virtual bool IsBold(const wxTreeItemId& item) const = 0; -#if wxABI_VERSION >= 20801 // is the control empty? bool IsEmpty() const; -#endif // wxABI 2.8.1+ // number of children @@ -203,6 +210,17 @@ public: // control with a lot of items (~ O(number of items)). virtual size_t GetSelections(wxArrayTreeItemIds& selections) const = 0; + // get the last item to be clicked when the control has wxTR_MULTIPLE + // equivalent to GetSelection() if not wxTR_MULTIPLE + virtual wxTreeItemId GetFocusedItem() const = 0; + + + // Clears the currently focused item + virtual void ClearFocusedItem() = 0; + // Sets the currently focused item. Item should be valid + virtual void SetFocusedItem(const wxTreeItemId& item) = 0; + + // get the parent of this item (may return NULL if root) virtual wxTreeItemId GetItemParent(const wxTreeItemId& item) const = 0; @@ -292,18 +310,16 @@ public: // expand this item virtual void Expand(const wxTreeItemId& item) = 0; - // expand the item and all its childs and thats childs + // expand the item and all its children recursively void ExpandAllChildren(const wxTreeItemId& item); // expand all items void ExpandAll(); // collapse the item without removing its children virtual void Collapse(const wxTreeItemId& item) = 0; -#if wxABI_VERSION >= 20801 - // collapse the item and all its childs and thats childs + // collapse the item and all its children void CollapseAllChildren(const wxTreeItemId& item); // collapse all items void CollapseAll(); -#endif // wxABI 2.8.1+ // collapse the item and remove all children virtual void CollapseAndReset(const wxTreeItemId& item) = 0; // toggles the current state @@ -315,6 +331,9 @@ public: virtual void UnselectAll() = 0; // select this item virtual void SelectItem(const wxTreeItemId& item, bool select = true) = 0; + // selects all (direct) children for given parent (only for + // multiselection controls) + virtual void SelectChildren(const wxTreeItemId& parent) = 0; // unselect this item void UnselectItem(const wxTreeItemId& item) { SelectItem(item, false); } // toggle item selection @@ -334,7 +353,7 @@ public: // been before. textCtrlClass parameter allows you to create an edit // control of arbitrary user-defined class deriving from wxTextCtrl. virtual wxTextCtrl *EditLabel(const wxTreeItemId& item, - wxClassInfo* textCtrlClass = CLASSINFO(wxTextCtrl)) = 0; + wxClassInfo* textCtrlClass = wxCLASSINFO(wxTextCtrl)) = 0; // returns the same pointer as StartEdit() if the item is being edited, // NULL otherwise (it's assumed that no more than one item may be // edited simultaneously) @@ -391,6 +410,10 @@ public: protected: virtual wxSize DoGetBestSize() const; + // common part of Get/SetItemState() + virtual int DoGetItemState(const wxTreeItemId& item) const = 0; + virtual void DoSetItemState(const wxTreeItemId& item, int state) = 0; + // common part of Append/Prepend/InsertItem() // // pos is the position at which to insert the item or (size_t)-1 to append @@ -429,7 +452,7 @@ protected: bool m_quickBestSize; - DECLARE_NO_COPY_CLASS(wxTreeCtrlBase) + wxDECLARE_NO_COPY_CLASS(wxTreeCtrlBase); }; // ---------------------------------------------------------------------------- @@ -439,7 +462,7 @@ protected: #if defined(__WXUNIVERSAL__) #include "wx/generic/treectlg.h" #elif defined(__WXPALMOS__) - #include "wx/palmos/treectrl.h" + #include "wx/generic/treectlg.h" #elif defined(__WXMSW__) #include "wx/msw/treectrl.h" #elif defined(__WXMOTIF__)