X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a43a4f9d4d4a7f107e81bc7de0c1eea729593ee2..103aec296a2c017f915b4b2b2584191fdb716a75:/include/wx/generic/treectrl.h diff --git a/include/wx/generic/treectrl.h b/include/wx/generic/treectrl.h index 6903436ec3..8bbf086830 100644 --- a/include/wx/generic/treectrl.h +++ b/include/wx/generic/treectrl.h @@ -16,12 +16,19 @@ #pragma interface "treectrl.h" #endif +#ifdef __WXMSW__ +WXDLLEXPORT_DATA(extern const char*) wxTreeCtrlNameStr; +#else +#define wxTreeCtrlNameStr "wxTreeCtrl" +#endif + #include "wx/defs.h" #include "wx/string.h" #include "wx/object.h" #include "wx/event.h" #include "wx/scrolwin.h" #include "wx/textctrl.h" +#include "wx/pen.h" // ----------------------------------------------------------------------------- // constants @@ -37,7 +44,7 @@ static const int wxTREE_HITTEST_ONITEMLABEL = 0x0080; // anywhere on the item static const int wxTREE_HITTEST_ONITEM = wxTREE_HITTEST_ONITEMICON | wxTREE_HITTEST_ONITEMLABEL; - + // ----------------------------------------------------------------------------- // forward declaration // ----------------------------------------------------------------------------- @@ -46,7 +53,6 @@ class wxImageList; class wxGenericTreeItem; class wxTreeItemData; -typedef int (*wxTreeItemCmpFunc)(wxTreeItemData *item1, wxTreeItemData *item2); // ----------------------------------------------------------------------------- // wxTreeItemId - unique identifier of a tree element @@ -201,8 +207,8 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator &validator = wxDefaultValidator, - const wxString& name = "wxTreeCtrl") + const wxValidator &validator = wxDefaultValidator, + const wxString& name = wxTreeCtrlNameStr) { Create(parent, id, pos, size, style, validator, name); } @@ -213,8 +219,8 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator &validator = wxDefaultValidator, - const wxString& name = "wxTreeCtrl"); + const wxValidator &validator = wxDefaultValidator, + const wxString& name = wxTreeCtrlNameStr); // accessors // --------- @@ -327,6 +333,8 @@ public: wxTreeItemId GetFirstChild(const wxTreeItemId& item, long& cookie) const; // get the next child wxTreeItemId GetNextChild(const wxTreeItemId& item, long& cookie) const; + // get the last child of this item - this method doesn't use cookies + wxTreeItemId GetLastChild(const wxTreeItemId& item) const; // get the next sibling of this item wxTreeItemId GetNextSibling(const wxTreeItemId& item) const; @@ -401,7 +409,7 @@ public: wxTreeItemId HitTest(const wxPoint& point) { int dummy; return HitTest(point, dummy); } wxTreeItemId HitTest(const wxPoint& point, int& flags); - + // start editing the item label: this (temporarily) replaces the item // with a one line edit control. The item will be selected if it hadn't // been before. textCtrlClass parameter allows you to create an edit @@ -415,13 +423,17 @@ public: // end editing and accept or discard the changes to item label void EndEditLabel(const wxTreeItemId& item, bool discardChanges = FALSE); - // sort the children of this item using the specified callback function - // (it should return -1, 0 or +1 as usual), if it's not specified - // alphabetical comparaison is performed. + // sorting + // this function is called to compare 2 items and should return -1, 0 + // or +1 if the first item is less than, equal to or greater than the + // second one. The base class version performs alphabetic comparaison + // of item labels (GetText) + virtual int OnCompareItems(const wxTreeItemId& item1, + const wxTreeItemId& item2); + // sort the children of this item using OnCompareItems // - // NB: this function is not reentrant! - void SortChildren(const wxTreeItemId& item, - wxTreeItemCmpFunc *cmpFunction = NULL); + // NB: this function is not reentrant and not MT-safe (FIXME)! + void SortChildren(const wxTreeItemId& item); // callbacks void OnPaint( wxPaintEvent &event ); @@ -446,6 +458,7 @@ protected: wxBrush *m_hilightBrush; wxImageList *m_imageListNormal, *m_imageListState; + int m_dragCount; // the common part of all ctors void Init();