]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/bitmap.h
don't use wxDELETE unnecessarily
[wxWidgets.git] / include / wx / os2 / bitmap.h
index a809df37ad622bda7bc2028ee88e6efb6669d6d9..9915a6a14df211470148f3ba3b36605a71b62d8e 100644 (file)
 #include "wx/gdicmn.h"
 #include "wx/palette.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;
+class WXDLLIMPEXP_FWD_CORE wxPixelDataBase;
 
 // ----------------------------------------------------------------------------
 // Bitmap data
 
 // ----------------------------------------------------------------------------
 // Bitmap data
@@ -34,10 +35,11 @@ class WXDLLEXPORT wxImage;
 //     wxBitmap functions accessing it
 // ----------------------------------------------------------------------------
 
 //     wxBitmap functions accessing it
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxBitmapRefData : public wxGDIImageRefData
+class WXDLLIMPEXP_CORE wxBitmapRefData : public wxGDIImageRefData
 {
 public:
     wxBitmapRefData();
 {
 public:
     wxBitmapRefData();
+    wxBitmapRefData(const wxBitmapRefData &tocopy);
     virtual ~wxBitmapRefData() { Free(); }
 
     virtual void Free();
     virtual ~wxBitmapRefData() { Free(); }
 
     virtual void Free();
@@ -62,7 +64,7 @@ public:
 // wxBitmap: a mono or colour bitmap
 // ----------------------------------------------------------------------------
 
 // 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
 {
 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);
 
     // Initialize with XPM data
     wxBitmap(const char* const* bits);
+#ifdef wxNEEDS_CHARPP
+    // needed for old GCC
+    wxBitmap(char** data)
+    {
+        *this = wxBitmap(const_cast<const char* const*>(data));
+    }
+#endif
 
     // Load a resource
     wxBitmap( int             nId
 
     // 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)
             );
 
     // 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
                    )
     { Init(); }
     // New constructor for generalised creation from data
     wxBitmap( const void* pData
-             ,long  lType
+             ,wxBitmapType lType
              ,int   nWidth
              ,int   nHeight
              ,int   nDepth = 1
              ,int   nWidth
              ,int   nHeight
              ,int   nDepth = 1
@@ -146,25 +155,29 @@ public:
                         ,int nDepth = -1
                        );
     virtual bool Create( const void* pData
                         ,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
                         ,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
                          );
     virtual bool LoadFile( const wxString& rName
-                          ,long            lType = wxBITMAP_TYPE_XPM
+                          ,wxBitmapType    lType = wxBITMAP_DEFAULT_TYPE
                          );
     virtual bool SaveFile( const wxString&  rName
                          );
     virtual bool SaveFile( const wxString&  rName
-                          ,int              lType
+                          ,wxBitmapType     lType
                           ,const wxPalette* pCmap = NULL
                          );
 
     inline wxBitmapRefData* GetBitmapData() const
       { return (wxBitmapRefData *)m_refData; }
 
                           ,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); }
 
     inline int GetQuality() const
       { return (GetBitmapData() ? GetBitmapData()->m_nQuality : 0); }
 
@@ -180,12 +193,6 @@ public:
 
     void SetMask(wxMask* pMask) ;
 
 
     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)
     // Implementation
 public:
     inline void SetHBITMAP(WXHBITMAP hBmp)
@@ -214,6 +221,8 @@ protected:
 
     bool CreateFromImage(const wxImage& image, int depth);
 
 
     bool CreateFromImage(const wxImage& image, int depth);
 
+    virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const;
+
 private:
     bool CopyFromIconOrCursor(const wxGDIImage& rIcon);
 
 private:
     bool CopyFromIconOrCursor(const wxGDIImage& rIcon);
 
@@ -225,10 +234,11 @@ private:
 // wxMask: a mono bitmap used for drawing bitmaps transparently.
 // ----------------------------------------------------------------------------
 
 // wxMask: a mono bitmap used for drawing bitmaps transparently.
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxMask : public wxObject
+class WXDLLIMPEXP_CORE wxMask : public wxObject
 {
 public:
     wxMask();
 {
 public:
     wxMask();
+    wxMask( const wxMask& tocopy);
 
     // Construct a mask from a bitmap and a colour indicating the transparent
     // area
 
     // 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
 // ----------------------------------------------------------------------------
 
 // 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()
 {
 public:
     inline wxBitmapHandler()
@@ -282,7 +292,7 @@ public:
 
     inline wxBitmapHandler( const wxString& rName
                     ,const wxString& rExt
 
     inline wxBitmapHandler( const wxString& rName
                     ,const wxString& rExt
-                    ,long            lType
+                    ,wxBitmapType lType
                    )
                    : wxGDIImageHandler( rName
                                        ,rExt
                    )
                    : wxGDIImageHandler( rName
                                        ,rExt
@@ -294,51 +304,51 @@ public:
     // old class which worked only with bitmaps
     virtual bool Create( wxBitmap* pBitmap
                         ,const void* pData
     // 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
                         ,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
                           ,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             nDesiredWidth
                           ,int             nDesiredHeight
                          );
     virtual bool SaveFile( wxBitmap*        pBitmap
                           ,const wxString&  rName
-                          ,int              lType
+                          ,wxBitmapType     lType
                           ,const wxPalette* pPalette = NULL
                           ,const wxPalette* pPalette = NULL
-                         );
+                         ) const;
 
     virtual bool Create( wxGDIImage* pImage
                         ,const void* pData
 
     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
                         ,int         nWidth
                         ,int         nHeight
                         ,int         nDepth = 1
                        );
     virtual bool Load( wxGDIImage*     pImage
                       ,int             nId
-                      ,long            lFlags
+                      ,wxBitmapType    lFlags
                       ,int             nDesiredWidth
                       ,int             nDesiredHeight
                      );
                       ,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)
 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)
                             )
                              ,int             WXUNUSED(nDesiredWidth)
                              ,int             WXUNUSED(nDesiredHeight)
                             )