X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c0c133e13b36a923c65f94499554e432bc3a0daa..66c2bf7b1d9326fb650acfaae22ec50528cfbf7c:/include/wx/treectrl.h diff --git a/include/wx/treectrl.h b/include/wx/treectrl.h index 81e24a8e8c..89493c3bbb 100644 --- a/include/wx/treectrl.h +++ b/include/wx/treectrl.h @@ -5,7 +5,6 @@ // Modified by: // Created: // Copyright: (c) Karsten Ballueder -// RCS-ID: $Id$ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -22,7 +21,7 @@ #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 WXDLLIMPEXP_FWD_CORE wxImageList; @@ -33,20 +32,7 @@ class WXDLLIMPEXP_FWD_CORE wxImageList; class WXDLLIMPEXP_CORE wxTreeCtrlBase : public wxControl { public: - wxTreeCtrlBase() - { - m_imageListNormal = - m_imageListState = NULL; - m_ownsImageListNormal = - m_ownsImageListState = false; - - // arbitrary default - m_spacing = 18; - - // quick DoGetBestSize calculation - m_quickBestSize = true; - } - + wxTreeCtrlBase(); virtual ~wxTreeCtrlBase(); // accessors @@ -210,6 +196,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; @@ -291,10 +288,10 @@ public: // delete this item and associated data if any virtual void Delete(const wxTreeItemId& item) = 0; // delete all children (but don't delete the item itself) - // NB: this won't send wxEVT_COMMAND_TREE_ITEM_DELETED events + // NB: this won't send wxEVT_TREE_ITEM_DELETED events virtual void DeleteChildren(const wxTreeItemId& item) = 0; // delete all items from the tree - // NB: this won't send wxEVT_COMMAND_TREE_ITEM_DELETED events + // NB: this won't send wxEVT_TREE_ITEM_DELETED events virtual void DeleteAllItems() = 0; // expand this item @@ -320,6 +317,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 @@ -339,7 +339,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) @@ -348,6 +348,10 @@ public: virtual void EndEditLabel(const wxTreeItemId& item, bool discardChanges = false) = 0; + // Enable or disable beep when incremental match doesn't find any item. + // Only implemented in the generic version currently. + virtual void EnableBellOnNoMatch(bool WXUNUSED(on) = true) { } + // sorting // ------- @@ -396,7 +400,7 @@ public: protected: virtual wxSize DoGetBestSize() const; - // comon part of Get/SetItemState() + // common part of Get/SetItemState() virtual int DoGetItemState(const wxTreeItemId& item) const = 0; virtual void DoSetItemState(const wxTreeItemId& item, int state) = 0; @@ -438,6 +442,13 @@ protected: bool m_quickBestSize; +private: + // Intercept Escape and Return keys to ensure that our in-place edit + // control always gets them before they're used for dialog navigation or + // anything else. + void OnCharHook(wxKeyEvent& event); + + wxDECLARE_NO_COPY_CLASS(wxTreeCtrlBase); }; @@ -447,8 +458,6 @@ protected: #if defined(__WXUNIVERSAL__) #include "wx/generic/treectlg.h" -#elif defined(__WXPALMOS__) - #include "wx/generic/treectlg.h" #elif defined(__WXMSW__) #include "wx/msw/treectrl.h" #elif defined(__WXMOTIF__)