X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/452418c4b0763eb611432e84f077c9766e282057..0b632977d75f403b7bc043d48a1c15e7394c546c:/include/wx/os2/bitmap.h diff --git a/include/wx/os2/bitmap.h b/include/wx/os2/bitmap.h index a809df37ad..9915a6a14d 100644 --- a/include/wx/os2/bitmap.h +++ b/include/wx/os2/bitmap.h @@ -17,15 +17,16 @@ #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; +class WXDLLIMPEXP_FWD_CORE wxPixelDataBase; // ---------------------------------------------------------------------------- // Bitmap data @@ -34,10 +35,11 @@ class WXDLLEXPORT wxImage; // wxBitmap functions accessing it // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxBitmapRefData : public wxGDIImageRefData +class WXDLLIMPEXP_CORE wxBitmapRefData : public wxGDIImageRefData { public: wxBitmapRefData(); + wxBitmapRefData(const wxBitmapRefData &tocopy); virtual ~wxBitmapRefData() { Free(); } virtual void Free(); @@ -62,7 +64,7 @@ public: // wxBitmap: a mono or colour bitmap // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxBitmap : public wxGDIImage +class WXDLLIMPEXP_CORE wxBitmap : public wxGDIImage { public: // default ctor creates an invalid bitmap, you must Create() it later @@ -85,20 +87,27 @@ public: // Initialize with XPM data wxBitmap(const char* const* bits); +#ifdef wxNEEDS_CHARPP + // needed for old GCC + wxBitmap(char** data) + { + *this = wxBitmap(const_cast(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 @@ -146,25 +155,29 @@ public: ,int nDepth = -1 ); 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); } @@ -180,12 +193,6 @@ public: 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) @@ -214,6 +221,8 @@ protected: bool CreateFromImage(const wxImage& image, int depth); + virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; + private: bool CopyFromIconOrCursor(const wxGDIImage& rIcon); @@ -225,10 +234,11 @@ private: // wxMask: a mono bitmap used for drawing bitmaps transparently. // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMask : public wxObject +class WXDLLIMPEXP_CORE wxMask : public wxObject { public: wxMask(); + wxMask( const wxMask& tocopy); // Construct a mask from a bitmap and a colour indicating the transparent // area @@ -274,7 +284,7 @@ protected: // wxBitmapHandler is a class which knows how to load/save bitmaps to/from file // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxBitmapHandler : public wxGDIImageHandler +class WXDLLIMPEXP_CORE wxBitmapHandler : public wxGDIImageHandler { public: inline wxBitmapHandler() @@ -282,7 +292,7 @@ public: inline wxBitmapHandler( const wxString& rName ,const wxString& rExt - ,long lType + ,wxBitmapType lType ) : wxGDIImageHandler( rName ,rExt @@ -294,51 +304,51 @@ public: // old class which worked only with bitmaps virtual bool Create( wxBitmap* pBitmap ,const void* pData - ,long lFlags + ,wxBitmapType lType ,int nWidth ,int nHeight ,int nDepth = 1 ); virtual bool LoadFile( wxBitmap* pBitmap ,int nId - ,long lFlags + ,wxBitmapType lType ,int nDesiredWidth ,int nDesiredHeight ); virtual bool LoadFile( wxBitmap* pBitmap ,const wxString& rName - ,long lFlags + ,wxBitmapType lType ,int nDesiredWidth ,int nDesiredHeight ); virtual bool SaveFile( wxBitmap* pBitmap ,const wxString& rName - ,int lType + ,wxBitmapType lType ,const wxPalette* pPalette = NULL - ); + ) const; 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) - ,HPS WXUNUSED(hPs) - ,long WXUNUSED(lFlags) + ,WXHANDLE WXUNUSED(hPs) + ,wxBitmapType WXUNUSED(lFlags) ,int WXUNUSED(nDesiredWidth) ,int WXUNUSED(nDesiredHeight) )