1. perform deep comparison for the classes for which it makes sense in the ports where this wasn't done yet 2. remove (shallow) comparison operators for the classes for which it does not make sense (such as wxBitmap) 3. makes wxBitmap use COW on all ports 4. adds wxObject::IsRefTo() 5. centralizes and improves COW docs git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        icon.h
 | |
| // Purpose:     wxIcon class
 | |
| // Author:      David Webster
 | |
| // Modified by:
 | |
| // Created:     10/09/99
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) David Webster
 | |
| // Licence:     wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_ICON_H_
 | |
| #define _WX_ICON_H_
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| // headers
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| #include "wx/bitmap.h"
 | |
| #include "wx/os2/gdiimage.h"
 | |
| 
 | |
| #define wxIconRefDataBase   wxGDIImageRefData
 | |
| #define wxIconBase          wxGDIImage
 | |
| 
 | |
| class WXDLLEXPORT wxIconRefData: public wxIconRefDataBase
 | |
| {
 | |
| public:
 | |
|     wxIconRefData() { };
 | |
|     virtual ~wxIconRefData() { Free(); }
 | |
| 
 | |
|     virtual void Free();
 | |
| }; // end of
 | |
| 
 | |
| // ---------------------------------------------------------------------------
 | |
| // Icon
 | |
| // ---------------------------------------------------------------------------
 | |
| 
 | |
| class WXDLLEXPORT wxIcon: public wxIconBase
 | |
| {
 | |
| public:
 | |
|     wxIcon();
 | |
| 
 | |
|     wxIcon( const char bits[]
 | |
|            ,int        nWidth
 | |
|            ,int        nHeight
 | |
|           );
 | |
|     inline wxIcon(const char** ppData) { CreateIconFromXpm(ppData); }
 | |
|     inline wxIcon(char** ppData) { CreateIconFromXpm((const char**)ppData); }
 | |
|     wxIcon( const wxString& rName
 | |
|            ,long            lFlags = wxBITMAP_TYPE_ICO_RESOURCE
 | |
|            ,int             nDesiredWidth = -1
 | |
|            ,int             nDesiredHeight = -1
 | |
|           );
 | |
|     wxIcon(const wxIconLocation& loc)
 | |
|     {
 | |
|         LoadFile(loc.GetFileName(), wxBITMAP_TYPE_ICO);
 | |
|     }
 | |
| 
 | |
|     virtual ~wxIcon();
 | |
| 
 | |
|     bool LoadFile( const wxString& rName
 | |
|                   ,long            lFlags = wxBITMAP_TYPE_ICO_RESOURCE
 | |
|                   ,int             nDesiredWidth = -1
 | |
|                   ,int             nDesiredHeight = -1
 | |
|                  );
 | |
| 
 | |
|     wxIconRefData *GetIconData() const { return (wxIconRefData *)m_refData; }
 | |
| 
 | |
|     inline void SetHICON(WXHICON hIcon) { SetHandle((WXHANDLE)hIcon); }
 | |
|     inline WXHICON GetHICON() const { return (WXHICON)GetHandle(); }
 | |
|     inline bool    IsXpm(void) const { return m_bIsXpm; };
 | |
|     inline const wxBitmap& GetXpmSrc(void) const { return m_vXpmSrc; }
 | |
| 
 | |
|     void CopyFromBitmap(const wxBitmap& rBmp);
 | |
| protected:
 | |
|     virtual wxGDIImageRefData* CreateData() const
 | |
|     {
 | |
|         return new wxIconRefData;
 | |
|     }
 | |
|     void    CreateIconFromXpm(const char **ppData);
 | |
| 
 | |
| private:
 | |
|     bool                            m_bIsXpm;
 | |
|     wxBitmap                        m_vXpmSrc;
 | |
| 
 | |
|     DECLARE_DYNAMIC_CLASS(wxIcon)
 | |
| };
 | |
| 
 | |
| #endif
 | |
|     // _WX_ICON_H_
 |