]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/treectrl.h
all delete functions now send delete notification event
[wxWidgets.git] / include / wx / msw / treectrl.h
index 03795479dda2e2b8c4247d21968bad56d8d44b9c..a67bd488510357df86bffca1f984bd2e9f688cdb 100644 (file)
 #include "wx/control.h"
 #include "wx/event.h"
 
+#ifdef __GNUWIN32__
+#  ifdef GetFirstChild
+#    undef GetFirstChild
+#  endif
+
+#  ifdef GetNextSibling
+#    undef GetNextSibling
+#  endif
+#endif
+
 // the type for "untyped" data
 typedef long wxDataType;
 
@@ -110,9 +120,7 @@ public:
     wxTreeItemId(WXHTREEITEM itemId) { m_itemId = (long)itemId; }
     operator WXHTREEITEM() const { return (WXHTREEITEM)m_itemId; }
 
-    void operator =(WXHTREEITEM item) { m_itemId = (long) item; }
-
-//    wxTreeItemId(long itemId) { m_itemId = itemId; }
+    void operator=(WXHTREEITEM item) { m_itemId = (long) item; }
 
 protected:
     long m_itemId;
@@ -238,6 +246,9 @@ public:
         // usage and loading time.
     void SetItemHasChildren(const wxTreeItemId& item, bool has = TRUE);
 
+        // the item will be shown in bold
+    void SetItemBold(const wxTreeItemId& item, bool bold = TRUE);
+
     // item status inquiries
     // ---------------------
 
@@ -249,6 +260,8 @@ public:
     bool IsExpanded(const wxTreeItemId& item) const;
         // is this item currently selected (the same as has focus)?
     bool IsSelected(const wxTreeItemId& item) const;
+        // is item text in bold font?
+    bool IsBold(const wxTreeItemId& item) const;
 
     // number of children
     // ------------------
@@ -325,7 +338,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
@@ -371,19 +388,23 @@ public:
     // helpers
     // -------
 
-    // @@@ do we really need to expose these functions to the application?
-
-        // get the bounding rectangle of the item (or of its label only)
-    void GetBoundingRect(const wxTreeItemId& item,
-                         wxRectangle& rect,
-                         bool textOnly = FALSE) const;
-
         // determine to which item (if any) belongs the given point (the
         // coordinates specified are relative to the client area of tree ctrl)
         // and fill the flags parameter with a bitmask of wxTREE_HITTEST_xxx
-        // constants
+        // constants.
+        //
+        // The first function is more portable (because easier to implement
+        // on other platforms), but the second one returns some extra info.
+    wxTreeItemId HitTest(const wxPoint& point)
+        { int dummy; return HitTest(point, dummy); }
     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,
+                         wxRect& rect,
+                         bool textOnly = FALSE) const;
+
     // deprecated
     // ----------
 
@@ -518,5 +539,8 @@ typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&);
 // be deleted just after the return of this event handler (if any)
 #define EVT_TREE_DELETE_ITEM(id, fn) { wxEVT_COMMAND_TREE_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
 
+// GetItem() returns the item that was activated (double click, enter, space)
+#define EVT_TREE_ITEM_ACTIVATED(id, fn) { wxEVT_COMMAND_TREE_ITEM_ACTIVATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
+
 #endif
     // _WX_TREECTRL_H_