#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;
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;
// 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
// ---------------------
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
// ------------------
// 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
// 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
// ----------
// 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_