class WXDLLEXPORT wxTreeItemId
{
+ friend bool operator==(const wxTreeItemId&, const wxTreeItemId&);
public:
// ctors
// 0 is invalid value for HTREEITEM
// accessors
// is this a valid tree item?
bool IsOk() const { return m_pItem != 0; }
+ // return true if this item is not valid
+ bool operator!() const { return !IsOk(); }
// operations
// invalidate the item
// deprecated: only for compatibility, don't work on 64 bit archs
wxTreeItemId(long item) { m_pItem = (wxTreeItemIdValue)item; }
operator long() const { return (long)m_pItem; }
-#endif // WXWIN_COMPATIBILITY_2_4
+#else // !WXWIN_COMPATIBILITY_2_4
+ operator bool() const { return IsOk(); }
+#endif // WXWIN_COMPATIBILITY_2_4/!WXWIN_COMPATIBILITY_2_4
wxTreeItemIdValue m_pItem;
};
+inline bool operator==(const wxTreeItemId& i1, const wxTreeItemId& i2)
+{
+ return i1.m_pItem == i2.m_pItem;
+}
+
+inline bool operator!=(const wxTreeItemId& i1, const wxTreeItemId& i2)
+{
+ return i1.m_pItem != i2.m_pItem;
+}
+
// ----------------------------------------------------------------------------
// wxTreeItemData is some (arbitrary) user class associated with some item. The
// main advantage of having this class (compared to old untyped interface) is
friend class WXDLLEXPORT wxTreeCtrl;
friend class WXDLLEXPORT wxGenericTreeCtrl;
- DECLARE_DYNAMIC_CLASS(wxTreeEvent);
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxTreeEvent);
};
typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&);