]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/bitmap.h
set eol-style
[wxWidgets.git] / include / wx / os2 / bitmap.h
index 5b5e917b4d8991dd8adf4a8da0ed0c5c2b5914be..ef7f919bb89e59667c7a1de42858ddbe864b9079 100644 (file)
 #ifndef _WX_BITMAP_H_
 #define _WX_BITMAP_H_
 
 #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"
 
 #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
 
 // ----------------------------------------------------------------------------
 // Bitmap data
@@ -42,6 +38,7 @@ class WXDLLEXPORT wxBitmapRefData : public wxGDIImageRefData
 {
 public:
     wxBitmapRefData();
 {
 public:
     wxBitmapRefData();
+    wxBitmapRefData(const wxBitmapRefData &tocopy);
     virtual ~wxBitmapRefData() { Free(); }
 
     virtual void Free();
     virtual ~wxBitmapRefData() { Free(); }
 
     virtual void Free();
@@ -74,7 +71,11 @@ public:
 
     // Copy constructors
     inline wxBitmap(const wxBitmap& rBitmap)
 
     // 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[]
 
     // Initialize with raw data
     wxBitmap( const char bits[]
@@ -84,8 +85,14 @@ public:
             );
 
     // Initialize with XPM data
             );
 
     // 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
 
     // Load a resource
     wxBitmap( int             nId
@@ -98,7 +105,7 @@ public:
                    )
     { Init(); }
     // New constructor for generalised creation from data
                    )
     { Init(); }
     // New constructor for generalised creation from data
-    wxBitmap( void* pData
+    wxBitmap( const void* pData
              ,long  lType
              ,int   nWidth
              ,int   nHeight
              ,long  lType
              ,int   nWidth
              ,int   nHeight
@@ -116,13 +123,6 @@ public:
     inline wxBitmap(const wxIcon& rIcon)
       { Init(); CopyFromIcon(rIcon); }
 
     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);
     wxBitmap& operator=(const wxIcon& rIcon)
     {
         (void)CopyFromIcon(rIcon);
@@ -153,7 +153,7 @@ public:
                         ,int nHeight
                         ,int nDepth = -1
                        );
                         ,int nHeight
                         ,int nDepth = -1
                        );
-    virtual bool Create( void* pData
+    virtual bool Create( const void* pData
                         ,long  lType
                         ,int   nWidth
                         ,int   nHeight
                         ,long  lType
                         ,int   nWidth
                         ,int   nHeight
@@ -188,12 +188,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)
@@ -220,10 +214,12 @@ protected:
     inline virtual wxGDIImageRefData* CreateData() const
         { return new wxBitmapRefData; }
 
     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);
 
     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);
 
 private:
     bool CopyFromIconOrCursor(const wxGDIImage& rIcon);
 
@@ -239,6 +235,7 @@ class WXDLLEXPORT 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
@@ -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
     // 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
                         ,long      lFlags
                         ,int       nWidth
                         ,int       nHeight
@@ -328,7 +325,7 @@ public:
                          );
 
     virtual bool Create( wxGDIImage* pImage
                          );
 
     virtual bool Create( wxGDIImage* pImage
-                        ,void*       pData
+                        ,const void* pData
                         ,long        lFlags
                         ,int         nWidth
                         ,int         nHeight
                         ,long        lFlags
                         ,int         nWidth
                         ,int         nHeight