#include "wx/palette.h"
// Bitmap
-class WXDLLEXPORT wxBitmap;
+class WXDLLIMPEXP_FWD_CORE wxBitmap;
class wxBitmapRefData ;
-class WXDLLEXPORT wxBitmapHandler;
-class WXDLLEXPORT wxControl;
-class WXDLLEXPORT wxCursor;
-class WXDLLEXPORT wxDC;
-class WXDLLEXPORT wxIcon;
-class WXDLLEXPORT wxImage;
-class WXDLLEXPORT wxPixelDataBase;
+class WXDLLIMPEXP_FWD_CORE wxBitmapHandler;
+class WXDLLIMPEXP_FWD_CORE wxControl;
+class WXDLLIMPEXP_FWD_CORE wxCursor;
+class WXDLLIMPEXP_FWD_CORE wxDC;
+class WXDLLIMPEXP_FWD_CORE wxIcon;
+class WXDLLIMPEXP_FWD_CORE wxImage;
+class WXDLLIMPEXP_FWD_CORE wxPixelDataBase;
// A mask is a bitmap used for drawing bitmaps
// Internally it is stored as a 8 bit deep memory chunk, 0 = black means the source will be drawn
// 8 bit is chosen only for performance reasons, note also that this is the inverse value range
// from alpha, where 0 = invisible , 255 = fully drawn
-class WXDLLEXPORT wxMask: public wxObject
+class WXDLLIMPEXP_CORE wxMask: public wxObject
{
DECLARE_DYNAMIC_CLASS(wxMask)
- DECLARE_NO_COPY_CLASS(wxMask)
public:
wxMask();
+ // Copy constructor
+ wxMask(const wxMask& mask);
+
// Construct a mask from a bitmap and a colour indicating
// the transparent area
wxMask(const wxBitmap& bitmap, const wxColour& colour);
// Construct a mask from a mono bitmap (black meaning show pixels, white meaning transparent)
wxMask(const wxBitmap& bitmap);
-
+
// implementation helper only : construct a mask from a 32 bit memory buffer
wxMask(const wxMemoryBuffer& buf, int width , int height , int bytesPerRow ) ;
void Init() ;
- // a 8 bit depth mask
+ // a 8 bit depth mask
void* GetRawAccess() const;
int GetBytesPerRow() const { return m_bytesPerRow ; }
- // renders/updates native representation when necessary
+ // renders/updates native representation when necessary
void RealizeNative() ;
WXHBITMAP GetHBITMAP() const ;
};
-class WXDLLIMPEXP_CORE wxBitmapHandler: public wxBitmapHandlerBase
-{
- DECLARE_ABSTRACT_CLASS(wxBitmapHandler)
-};
-
-class WXDLLEXPORT wxBitmap: public wxBitmapBase
+class WXDLLIMPEXP_CORE wxBitmap: public wxBitmapBase
{
DECLARE_DYNAMIC_CLASS(wxBitmap)
- friend class WXDLLEXPORT wxBitmapHandler;
+ friend class WXDLLIMPEXP_FWD_CORE wxBitmapHandler;
public:
wxBitmap(); // Platform-specific
// copies the contents and mask of the given (colour) icon to the bitmap
virtual bool CopyFromIcon(const wxIcon& icon);
- bool Ok() const;
int GetWidth() const;
int GetHeight() const;
int GetDepth() const;
void SetDepth(int d);
void SetOk(bool isOk);
-#if WXWIN_COMPATIBILITY_2_4
- // these functions do nothing and are only there for backwards
- // compatibility
- wxDEPRECATED( int GetQuality() const );
- wxDEPRECATED( void SetQuality(int quality) );
-#endif // WXWIN_COMPATIBILITY_2_4
-
#if wxUSE_PALETTE
wxPalette* GetPalette() const;
void SetPalette(const wxPalette& palette);
wxMask *GetMask() const;
void SetMask(wxMask *mask) ;
- inline bool operator == (const wxBitmap& bitmap) const { return m_refData == bitmap.m_refData; }
- inline bool operator != (const wxBitmap& bitmap) const { return m_refData != bitmap.m_refData; }
-
static void InitStandardHandlers();
// raw bitmap access support functions, for internal use only
bool HasAlpha() const;
void UseAlpha();
- // returns the 'native' implementation, a GWorldPtr for the content and one for the mask
+ // returns the 'native' implementation, a GWorldPtr for the content and one for the mask
WXHBITMAP GetHBITMAP( WXHBITMAP * mask = NULL ) const;
-#ifdef __WXMAC_OSX__
// returns a CGImageRef which must released after usage with CGImageRelease
- WXCGIMAGEREF CGImageCreate() const ;
-#endif
+ CGImageRef CreateCGImage() const ;
+
+ // returns a IconRef which must be retained before and released after usage
+ IconRef GetIconRef() const;
+ // returns a IconRef which must be released after usage
+ IconRef CreateIconRef() const;
// get read only access to the underlying buffer
void *GetRawAccess() const ;
// brackets to the underlying OS structure for read/write access
// makes sure that no cached images will be constructed until terminated
void *BeginRawAccess() ;
void EndRawAccess() ;
+
+protected:
+ virtual wxGDIRefData *CreateGDIRefData() const;
+ virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const;
};
-#endif
- // _WX_BITMAP_H_
+
+#endif // _WX_BITMAP_H_