class WXDLLIMPEXP_FWD_CORE wxMask;
class WXDLLIMPEXP_FWD_CORE wxCursor;
class WXDLLIMPEXP_FWD_CORE wxControl;
-class WXDLLIMPEXP_FWD_CORE wxImage;
+class WXDLLIMPEXP_FWD_CORE wxPixelDataBase;
// ----------------------------------------------------------------------------
// Bitmap data
// wxBitmap: a mono or colour bitmap
// ----------------------------------------------------------------------------
-class WXDLLIMPEXP_CORE wxBitmap : public wxGDIImage
+class WXDLLIMPEXP_CORE wxBitmap : public wxGDIImage,
+ public wxBitmapHelpers
{
public:
// default ctor creates an invalid bitmap, you must Create() it later
// needed for old GCC
wxBitmap(char** data)
{
- *this = wxBitmap(wx_const_cast(const char* const*, data));
+ *this = wxBitmap(const_cast<const char* const*>(data));
}
#endif
// Load a resource
wxBitmap( int nId
- ,long lType = wxBITMAP_TYPE_BMP_RESOURCE
+ ,wxBitmapType lType = wxBITMAP_DEFAULT_TYPE
);
// For compatiability with other ports, under OS/2 does same as default ctor
inline wxBitmap( const wxString& WXUNUSED(rFilename)
- ,long WXUNUSED(lType)
+ ,wxBitmapType WXUNUSED(lType)
)
{ Init(); }
// New constructor for generalised creation from data
wxBitmap( const void* pData
- ,long lType
+ ,wxBitmapType lType
,int nWidth
,int nHeight
,int nDepth = 1
);
// If depth is omitted, will create a bitmap compatible with the display
- wxBitmap( int nWidth, int nHeight, int nDepth = -1 );
+ wxBitmap( int nWidth, int nHeight, int nDepth = -1 )
+ {
+ Init();
+ (void)Create(nWidth, nHeight, nDepth);
+ }
+ wxBitmap( const wxSize& sz, int nDepth = -1 )
+ {
+ Init();
+ (void)Create(sz, nDepth);
+ }
wxBitmap( const wxImage& image, int depth = -1 )
{ (void)CreateFromImage(image, depth); }
virtual ~wxBitmap();
wxImage ConvertToImage() const;
+ wxBitmap ConvertToDisabled(unsigned char brightness = 255) const;
// get the given part of bitmap
wxBitmap GetSubBitmap(const wxRect& rRect) const;
virtual bool Create( int nWidth
,int nHeight
- ,int nDepth = -1
+ ,int nDepth = wxBITMAP_SCREEN_DEPTH
);
+ virtual bool Create(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH)
+ { return Create(sz.GetWidth(), sz.GetHeight(), depth); }
+
virtual bool Create( const void* pData
- ,long lType
+ ,wxBitmapType lType
,int nWidth
,int nHeight
,int nDepth = 1
);
virtual bool LoadFile( int nId
- ,long lType = wxBITMAP_TYPE_BMP_RESOURCE
+ ,wxBitmapType lType = wxBITMAP_DEFAULT_TYPE
);
virtual bool LoadFile( const wxString& rName
- ,long lType = wxBITMAP_TYPE_XPM
+ ,wxBitmapType lType = wxBITMAP_DEFAULT_TYPE
);
virtual bool SaveFile( const wxString& rName
- ,int lType
+ ,wxBitmapType lType
,const wxPalette* pCmap = NULL
);
inline wxBitmapRefData* GetBitmapData() const
{ return (wxBitmapRefData *)m_refData; }
+ // raw bitmap access support functions
+ void *GetRawData(wxPixelDataBase& data, int bpp);
+ void UngetRawData(wxPixelDataBase& data);
+
inline int GetQuality() const
{ return (GetBitmapData() ? GetBitmapData()->m_nQuality : 0); }
void SetQuality(int nQ);
wxPalette* GetPalette() const
- { return (GetBitmapData() ? (& GetBitmapData()->m_vBitmapPalette) : (wxPalette*) NULL); }
+ { return (GetBitmapData() ? (& GetBitmapData()->m_vBitmapPalette) : NULL); }
void SetPalette(const wxPalette& rPalette);
inline wxMask* GetMask() const
- { return (GetBitmapData() ? GetBitmapData()->m_pBitmapMask : (wxMask*) NULL); }
+ { return (GetBitmapData() ? GetBitmapData()->m_pBitmapMask : NULL); }
void SetMask(wxMask* pMask) ;
{ if (GetBitmapData()) GetBitmapData()->m_pSelectedInto = pDc; }
inline wxDC* GetSelectedInto() const
- { return (GetBitmapData() ? GetBitmapData()->m_pSelectedInto : (wxDC*) NULL); }
+ { return (GetBitmapData() ? GetBitmapData()->m_pSelectedInto : NULL); }
inline bool IsMono(void) const { return m_bIsMono; }
virtual bool Create( wxGDIImage* pImage
,const void* pData
- ,long lFlags
+ ,wxBitmapType lFlags
,int nWidth
,int nHeight
,int nDepth = 1
);
virtual bool Load( wxGDIImage* pImage
,int nId
- ,long lFlags
+ ,wxBitmapType lFlags
,int nDesiredWidth
,int nDesiredHeight
);
- virtual bool Save( wxGDIImage* pImage
- ,const wxString& rName
- ,int lType
+ virtual bool Save( const wxGDIImage* pImage
+ ,const wxString& rName
+ ,wxBitmapType lType
) const;
private:
inline virtual bool Load( wxGDIImage* WXUNUSED(pImage)
,const wxString& WXUNUSED(rName)
,WXHANDLE WXUNUSED(hPs)
- ,long WXUNUSED(lFlags)
+ ,wxBitmapType WXUNUSED(lFlags)
,int WXUNUSED(nDesiredWidth)
,int WXUNUSED(nDesiredHeight)
)