git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74774 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        interface/wx/windowptr.h
 | |
| // Purpose:     wxWindowPtr<T> class documentation.
 | |
| // Author:      Vaclav Slavik
 | |
| // Created:     2013-09-02
 | |
| // Copyright:   (c) 2013 Vaclav Slavik <vslavik@fastmail.fm>
 | |
| // Licence:     wxWindows licence
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| /**
 | |
|     A reference-counted smart pointer for holding wxWindow instances.
 | |
| 
 | |
|     This specialization of wxSharedPtr<T> is useful for holding
 | |
|     wxWindow-derived objects. Unlike wxSharedPtr<T> or @c std::shared_ptr<>, it
 | |
|     doesn't use the delete operator to destroy the value when reference count
 | |
|     drops to zero, but calls wxWindow::Destroy() to safely destroy the window.
 | |
| 
 | |
|     The template parameter T must be wxWindow or a class derived from it.
 | |
| 
 | |
|     @library{wxcore}
 | |
|     @category{smartpointers}
 | |
| 
 | |
|     @since 3.0
 | |
| 
 | |
|     @see wxSharedPtr<T>
 | |
| */
 | |
| template<typename T>
 | |
| class wxWindowPtr<T> : public wxSharedPtr<T>
 | |
| {
 | |
| public:
 | |
|     /// Default constructor.
 | |
|     wxWindowPtr();
 | |
| 
 | |
|     /**
 | |
|         Constructor.
 | |
| 
 | |
|         Creates shared pointer from the raw pointer @a ptr and takes ownership
 | |
|         of it.
 | |
|     */
 | |
|     explicit wxWindowPtr(T* ptr);
 | |
| 
 | |
|     /**
 | |
|         Constructor.
 | |
| 
 | |
|         Creates shared pointer from the raw pointer @a ptr and deleter @a d
 | |
|         and takes ownership of it.
 | |
| 
 | |
|         @param ptr  The raw pointer.
 | |
|         @param d    Deleter - a functor that is called instead of delete to
 | |
|                     free the @a ptr raw pointer when its reference count drops to
 | |
|                     zero.
 | |
| 
 | |
|     */
 | |
|     template<typename Deleter>
 | |
|     explicit wxWindowPtr(T* ptr, Deleter d);
 | |
| 
 | |
|     /// Copy constructor.
 | |
|     wxWindowPtr(const wxWindowPtr<T>& tocopy);
 | |
| 
 | |
|     /**
 | |
|         Assignment operator.
 | |
| 
 | |
|         Releases any previously held pointer and creates a reference to @a ptr.
 | |
|     */
 | |
|     wxWindowPtr<T>& operator=(T* ptr);
 | |
| 
 | |
|     /**
 | |
|         Assignment operator.
 | |
| 
 | |
|         Releases any previously held pointer and creates a reference to the
 | |
|         same object as @a topcopy.
 | |
|     */
 | |
|     wxWindowPtr<T>& operator=(const wxWindowPtr<T>& tocopy);
 | |
| 
 | |
|     /**
 | |
|         Reset pointer to @a ptr.
 | |
| 
 | |
|         If the reference count of the previously owned pointer was 1 it will be deleted.
 | |
|     */
 | |
|     void reset(T* ptr = NULL);
 | |
| };
 | |
| 
 |