This is a facade for wxDataViewCtrl allowing to easily work with multi-column trees, possibly with an optional checkbox in the first column. Its API is very similar to wxTreeListCtrl and it provides a simple migration path from the latter. Add the class itself, documentation for it and minimal unit tests. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68916 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        wx/itemid.h
 | |
| // Purpose:     wxItemId class declaration.
 | |
| // Author:      Vadim Zeitlin
 | |
| // Created:     2011-08-17
 | |
| // RCS-ID:      $Id: wxhead.h,v 1.12 2010-04-22 12:44:51 zeitlin Exp $
 | |
| // 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_
 |