#include "wx/gdicmn.h"
#include "wx/palette.h"
-class WXDLLEXPORT wxDC;
-class WXDLLEXPORT wxControl;
-class WXDLLEXPORT wxBitmap;
-class WXDLLEXPORT wxBitmapHandler;
-class WXDLLEXPORT wxIcon;
-class WXDLLEXPORT wxMask;
-class WXDLLEXPORT wxCursor;
-class WXDLLEXPORT wxControl;
-class WXDLLEXPORT wxImage;
+class WXDLLIMPEXP_FWD_CORE wxDC;
+class WXDLLIMPEXP_FWD_CORE wxControl;
+class WXDLLIMPEXP_FWD_CORE wxBitmap;
+class WXDLLIMPEXP_FWD_CORE wxBitmapHandler;
+class WXDLLIMPEXP_FWD_CORE wxIcon;
+class WXDLLIMPEXP_FWD_CORE wxMask;
+class WXDLLIMPEXP_FWD_CORE wxCursor;
+class WXDLLIMPEXP_FWD_CORE wxControl;
+class WXDLLIMPEXP_FWD_CORE wxImage;
// ----------------------------------------------------------------------------
// Bitmap data
{
public:
wxBitmapRefData();
+ wxBitmapRefData(const wxBitmapRefData &tocopy);
virtual ~wxBitmapRefData() { Free(); }
virtual void Free();
// Copy constructors
inline wxBitmap(const wxBitmap& rBitmap)
- { Init(); Ref(rBitmap); SetHandle(rBitmap.GetHandle()); }
+ : wxGDIImage(rBitmap)
+ {
+ Init();
+ SetHandle(rBitmap.GetHandle());
+ }
// Initialize with raw data
wxBitmap( const char bits[]
);
// Initialize with XPM data
- wxBitmap(const char** ppData) { CreateFromXpm(ppData); }
- wxBitmap(char** ppData) { CreateFromXpm((const char**)ppData); }
+ wxBitmap(const char* const* bits);
+#ifdef wxNEEDS_CHARPP
+ // needed for old GCC
+ wxBitmap(char** data)
+ {
+ *this = wxBitmap(wx_const_cast(const char* const*, data));
+ }
+#endif
// Load a resource
wxBitmap( int nId
)
{ Init(); }
// New constructor for generalised creation from data
- wxBitmap( void* pData
+ wxBitmap( const void* pData
,long lType
,int nWidth
,int nHeight
inline wxBitmap(const wxIcon& rIcon)
{ Init(); CopyFromIcon(rIcon); }
- wxBitmap& operator=(const wxBitmap& rBitmap)
- {
- if ( m_refData != rBitmap.m_refData )
- Ref(rBitmap);
- return(*this);
- }
-
wxBitmap& operator=(const wxIcon& rIcon)
{
(void)CopyFromIcon(rIcon);
,int nHeight
,int nDepth = -1
);
- virtual bool Create( void* pData
+ virtual bool Create( const void* pData
,long lType
,int nWidth
,int nHeight
void SetMask(wxMask* pMask) ;
- inline bool operator==(const wxBitmap& rBitmap) const
- { return m_refData == rBitmap.m_refData; }
-
- inline bool operator!=(const wxBitmap& rBitmap) const
- { return m_refData != rBitmap.m_refData; }
-
// Implementation
public:
inline void SetHBITMAP(WXHBITMAP hBmp)
inline virtual wxGDIImageRefData* CreateData() const
{ return new wxBitmapRefData; }
- // creates the bitmap from XPM data, supposed to be called from ctor
- bool CreateFromXpm(const char** ppData);
bool CreateFromImage(const wxImage& image, int depth);
+ // ref counting code
+ virtual wxObjectRefData *CreateRefData() const;
+ virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const;
+
private:
bool CopyFromIconOrCursor(const wxGDIImage& rIcon);
{
public:
wxMask();
+ wxMask( const wxMask& tocopy);
// Construct a mask from a bitmap and a colour indicating the transparent
// area
// keep wxBitmapHandler derived from wxGDIImageHandler compatible with the
// old class which worked only with bitmaps
virtual bool Create( wxBitmap* pBitmap
- ,void* pData
+ ,const void* pData
,long lFlags
,int nWidth
,int nHeight
);
virtual bool Create( wxGDIImage* pImage
- ,void* pData
+ ,const void* pData
,long lFlags
,int nWidth
,int nHeight