X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a3bf7524f394af039efe196a186f7969cbabcc19..333e57d578e9e0fb6555452b5a53698ffd85ee69:/include/wx/os2/bitmap.h diff --git a/include/wx/os2/bitmap.h b/include/wx/os2/bitmap.h index ca736176ea..ef7f919bb8 100644 --- a/include/wx/os2/bitmap.h +++ b/include/wx/os2/bitmap.h @@ -12,24 +12,20 @@ #ifndef _WX_BITMAP_H_ #define _WX_BITMAP_H_ -#ifdef __GNUG__ - #pragma interface "bitmap.h" -#endif - #include "wx/os2/private.h" #include "wx/os2/gdiimage.h" #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 @@ -42,6 +38,7 @@ class WXDLLEXPORT wxBitmapRefData : public wxGDIImageRefData { public: wxBitmapRefData(); + wxBitmapRefData(const wxBitmapRefData &tocopy); virtual ~wxBitmapRefData() { Free(); } virtual void Free(); @@ -74,7 +71,11 @@ public: // 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[] @@ -84,8 +85,14 @@ public: ); // 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 @@ -98,7 +105,7 @@ public: ) { Init(); } // New constructor for generalised creation from data - wxBitmap( void* pData + wxBitmap( const void* pData ,long lType ,int nWidth ,int nHeight @@ -106,10 +113,7 @@ public: ); // 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 ); wxBitmap( const wxImage& image, int depth = -1 ) { (void)CreateFromImage(image, depth); } @@ -119,13 +123,6 @@ public: 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); @@ -156,7 +153,7 @@ public: ,int nHeight ,int nDepth = -1 ); - virtual bool Create( void* pData + virtual bool Create( const void* pData ,long lType ,int nWidth ,int nHeight @@ -165,6 +162,9 @@ public: virtual bool LoadFile( int nId ,long lType = wxBITMAP_TYPE_BMP_RESOURCE ); + virtual bool LoadFile( const wxString& rName + ,long lType = wxBITMAP_TYPE_XPM + ); virtual bool SaveFile( const wxString& rName ,int lType ,const wxPalette* pCmap = NULL @@ -188,12 +188,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) @@ -220,10 +214,12 @@ protected: 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); @@ -239,6 +235,7 @@ class WXDLLEXPORT wxMask : public wxObject { public: wxMask(); + wxMask( const wxMask& tocopy); // Construct a mask from a bitmap and a colour indicating the transparent // area @@ -303,7 +300,7 @@ public: // 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 @@ -315,6 +312,12 @@ public: ,int nDesiredWidth ,int nDesiredHeight ); + virtual bool LoadFile( wxBitmap* pBitmap + ,const wxString& rName + ,long lFlags + ,int nDesiredWidth + ,int nDesiredHeight + ); virtual bool SaveFile( wxBitmap* pBitmap ,const wxString& rName ,int lType @@ -322,7 +325,7 @@ public: ); virtual bool Create( wxGDIImage* pImage - ,void* pData + ,const void* pData ,long lFlags ,int nWidth ,int nHeight @@ -339,14 +342,14 @@ public: ,int lType ); private: - inline virtual bool Load( wxGDIImage* pImage - ,const wxString& rName - ,HPS hPs - ,long lFlags - ,int nDesiredWidth - ,int nDesiredHeight + inline virtual bool Load( wxGDIImage* WXUNUSED(pImage) + ,const wxString& WXUNUSED(rName) + ,HPS WXUNUSED(hPs) + ,long WXUNUSED(lFlags) + ,int WXUNUSED(nDesiredWidth) + ,int WXUNUSED(nDesiredHeight) ) - { return FALSE; } + { return false; } DECLARE_DYNAMIC_CLASS(wxBitmapHandler) }; // end of CLASS wxBitmapHandler