| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/itemid.h
 
- // Purpose:     wxItemId class declaration.
 
- // Author:      Vadim Zeitlin
 
- // Created:     2011-08-17
 
- // Copyright:   (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
 
- // Licence:     wxWindows licence
 
- ///////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_ITEMID_H_
 
- #define _WX_ITEMID_H_
 
- // ----------------------------------------------------------------------------
 
- // wxItemId: an opaque item identifier used with wx{Tree,TreeList,DataView}Ctrl.
 
- // ----------------------------------------------------------------------------
 
- // The template argument T is typically a pointer to some opaque type. While
 
- // wxTreeItemId and wxDataViewItem use a pointer to void, this is dangerous and
 
- // not recommended for the new item id classes.
 
- template <typename T>
 
- class wxItemId
 
- {
 
- public:
 
-     typedef T Type;
 
-     // This ctor is implicit which is fine for non-void* types, but if you use
 
-     // this class with void* you're strongly advised to make the derived class
 
-     // ctor explicit as implicitly converting from any pointer is simply too
 
-     // dangerous.
 
-     wxItemId(Type item = NULL) : m_pItem(item) { }
 
-     // Default copy ctor, assignment operator and dtor are ok.
 
-     bool IsOk() const { return m_pItem != NULL; }
 
-     Type GetID() const { return m_pItem; }
 
-     operator const Type() const { return m_pItem; }
 
-     // This is used for implementation purposes only.
 
-     Type operator->() const { return m_pItem; }
 
-     void Unset() { m_pItem = NULL; }
 
-     // This field is public *only* for compatibility with the old wxTreeItemId
 
-     // implementation and must not be used in any new code.
 
- //private:
 
-     Type m_pItem;
 
- };
 
- template <typename T>
 
- bool operator==(const wxItemId<T>& left, const wxItemId<T>& right)
 
- {
 
-     return left.GetID() == right.GetID();
 
- }
 
- template <typename T>
 
- bool operator!=(const wxItemId<T>& left, const wxItemId<T>& right)
 
- {
 
-     return !(left == right);
 
- }
 
- #endif // _WX_ITEMID_H_
 
 
  |