]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/treectrl.h
The char->wxChar in window.h cascades through some other header files.
[wxWidgets.git] / include / wx / msw / treectrl.h
index d50417d5af0e0dc8daae4c31a8504aeab98046ad..f20bb7501e9fd04b61fe5d424134c89b133c9726 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "wx/control.h"
 #include "wx/event.h"
+#include "wx/textctrl.h"
 
 #ifdef __GNUWIN32__
 #  ifdef GetFirstChild
@@ -43,7 +44,6 @@ struct WXDLLEXPORT wxTreeViewItem;
 // first item precedes the second, +1 if the second precedes the first or 0 if
 // they're equivalent
 class wxTreeItemData;
-typedef int (*wxTreeItemCmpFunc)(wxTreeItemData *item1, wxTreeItemData *item2);
 
 // ----------------------------------------------------------------------------
 // constants
@@ -151,7 +151,11 @@ public:
 
     // accessors: set/get the item associated with this node
     void SetId(const wxTreeItemId& id) { m_itemId = id; }
+#ifdef __WATCOMC__
+    const wxTreeItemId GetId() const { return m_itemId; }
+#else
     const wxTreeItemId& GetId() const { return (wxTreeItemId&) m_itemId; }
+#endif
 };
 
 // ----------------------------------------------------------------------------
@@ -249,6 +253,9 @@ public:
         // the item will be shown in bold
     void SetItemBold(const wxTreeItemId& item, bool bold = TRUE);
 
+        // the item will be shown with a drop highlight
+    void SetItemDropHighlight(const wxTreeItemId& item, bool highlight = TRUE);
+
     // item status inquiries
     // ---------------------
 
@@ -295,6 +302,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;
@@ -338,7 +347,11 @@ public:
 
         // delete this item and associated data if any
     void Delete(const wxTreeItemId& item);
+        // delete all children (but don't delete the item itself)
+        // NB: this won't send wxEVT_COMMAND_TREE_ITEM_DELETED events
+    void DeleteChildren(const wxTreeItemId& item);
         // delete all items from the tree
+        // NB: this won't send wxEVT_COMMAND_TREE_ITEM_DELETED events
     void DeleteAllItems();
 
         // expand this item
@@ -373,13 +386,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);
 
     // helpers
     // -------
@@ -396,8 +413,7 @@ public:
     wxTreeItemId HitTest(const wxPoint& point, int& flags);
 
         // get the bounding rectangle of the item (or of its label only)
-        // @@@ do we really need to expose this functions to the application?
-    void GetBoundingRect(const wxTreeItemId& item,
+    bool GetBoundingRect(const wxTreeItemId& item,
                          wxRect& rect,
                          bool textOnly = FALSE) const;