]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/carbon/bitmap.h
correcting import/export (_adv gave linking errors)
[wxWidgets.git] / include / wx / mac / carbon / bitmap.h
index a9b14b771302b2edadb6598e85097c6882d46781..ce5b1d22bc0164fdf9697b20abea290733fbe647 100644 (file)
 #include "wx/palette.h"
 
 // Bitmap
-class WXDLLEXPORT wxBitmap;
+class WXDLLIMPEXP_FWD_CORE wxBitmap;
 class wxBitmapRefData ;
-class WXDLLEXPORT wxBitmapHandler;
-class WXDLLEXPORT wxControl;
-class WXDLLEXPORT wxCursor;
-class WXDLLEXPORT wxDC;
-class WXDLLEXPORT wxIcon;
-class WXDLLEXPORT wxImage;
-class WXDLLEXPORT wxPixelDataBase;
+class WXDLLIMPEXP_FWD_CORE wxBitmapHandler;
+class WXDLLIMPEXP_FWD_CORE wxControl;
+class WXDLLIMPEXP_FWD_CORE wxCursor;
+class WXDLLIMPEXP_FWD_CORE wxDC;
+class WXDLLIMPEXP_FWD_CORE wxIcon;
+class WXDLLIMPEXP_FWD_CORE wxImage;
+class WXDLLIMPEXP_FWD_CORE wxPixelDataBase;
 
 // A mask is a bitmap used for drawing bitmaps
 // Internally it is stored as a 8 bit deep memory chunk, 0 = black means the source will be drawn
@@ -34,11 +34,13 @@ class WXDLLEXPORT wxPixelDataBase;
 class WXDLLEXPORT wxMask: public wxObject
 {
     DECLARE_DYNAMIC_CLASS(wxMask)
-    DECLARE_NO_COPY_CLASS(wxMask)
 
 public:
     wxMask();
 
+    // Copy constructor
+    wxMask(const wxMask& mask);
+
     // Construct a mask from a bitmap and a colour indicating
     // the transparent area
     wxMask(const wxBitmap& bitmap, const wxColour& colour);
@@ -49,7 +51,7 @@ public:
     // implementation helper only : construct a mask from a 32 bit memory buffer
     wxMask(const wxMemoryBuffer& buf, int width , int height , int bytesPerRow ) ;
 
-    ~wxMask();
+    virtual ~wxMask();
 
     bool Create(const wxBitmap& bitmap, const wxColour& colour);
     bool Create(const wxBitmap& bitmap);
@@ -78,52 +80,31 @@ private:
 
 };
 
-class WXDLLEXPORT wxBitmapHandler: public wxBitmapHandlerBase
+class WXDLLIMPEXP_CORE wxBitmapHandler: public wxBitmapHandlerBase
 {
-public:
-    wxBitmapHandler() { }
-    virtual ~wxBitmapHandler();
-
-    virtual bool Create(wxBitmap *bitmap, void *data, long flags, int width, int height, int depth = 1);
-    virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags,
-        int desiredWidth, int desiredHeight);
-    virtual bool SaveFile(const wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette = NULL);
-
-private:
-    DECLARE_DYNAMIC_CLASS(wxBitmapHandler)
+    DECLARE_ABSTRACT_CLASS(wxBitmapHandler)
 };
 
-#define M_BITMAPHANDLERDATA ((wxBitmapRefData *)bitmap->GetRefData())
-
 class WXDLLEXPORT wxBitmap: public wxBitmapBase
 {
     DECLARE_DYNAMIC_CLASS(wxBitmap)
 
-    friend class WXDLLEXPORT wxBitmapHandler;
+    friend class WXDLLIMPEXP_FWD_CORE wxBitmapHandler;
 
 public:
     wxBitmap(); // Platform-specific
 
-    // Copy constructors
-    wxBitmap(const wxBitmap& bitmap)
-        : wxBitmapBase()
-    {
-        Ref(bitmap);
-    }
-
     // Initialize with raw data.
     wxBitmap(const char bits[], int width, int height, int depth = 1);
 
     // Initialize with XPM data
-    bool CreateFromXpm(const char **bits);
-    wxBitmap(const char **bits);
-    wxBitmap(char **bits);
+    wxBitmap(const char* const* bits);
 
     // Load a file or resource
     wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_TYPE_PICT_RESOURCE);
 
     // Constructor for generalised creation from data
-    wxBitmap(void *data, wxBitmapType type, int width, int height, int depth = 1);
+    wxBitmap(const void* data, wxBitmapType type, int width, int height, int depth = 1);
 
     // If depth is omitted, will create a bitmap compatible with the display
     wxBitmap(int width, int height, int depth = -1);
@@ -134,7 +115,7 @@ public:
     // Convert from wxIcon
     wxBitmap(const wxIcon& icon) { CopyFromIcon(icon); }
 
-    ~wxBitmap();
+    virtual ~wxBitmap();
 
     wxImage ConvertToImage() const;
 
@@ -142,7 +123,7 @@ public:
     wxBitmap GetSubBitmap( const wxRect& rect ) const;
 
     virtual bool Create(int width, int height, int depth = -1);
-    virtual bool Create(void *data, wxBitmapType type, int width, int height, int depth = 1);
+    virtual bool Create(const void* data, wxBitmapType type, int width, int height, int depth = 1);
     // virtual bool Create( WXHICON icon) ;
     virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_TYPE_BMP_RESOURCE);
     virtual bool SaveFile(const wxString& name, wxBitmapType type, const wxPalette *cmap = NULL) const;
@@ -153,7 +134,8 @@ public:
     // copies the contents and mask of the given (colour) icon to the bitmap
     virtual bool CopyFromIcon(const wxIcon& icon);
 
-    bool Ok() const;
+    bool Ok() const { return IsOk(); }
+    bool IsOk() const;
     int GetWidth() const;
     int GetHeight() const;
     int GetDepth() const;
@@ -162,13 +144,6 @@ public:
     void SetDepth(int d);
     void SetOk(bool isOk);
 
-#if WXWIN_COMPATIBILITY_2_4
-    // these functions do nothing and are only there for backwards
-    // compatibility
-    wxDEPRECATED( int GetQuality() const );
-    wxDEPRECATED( void SetQuality(int quality) );
-#endif // WXWIN_COMPATIBILITY_2_4
-
 #if wxUSE_PALETTE
     wxPalette* GetPalette() const;
     void SetPalette(const wxPalette& palette);
@@ -177,10 +152,6 @@ public:
     wxMask *GetMask() const;
     void SetMask(wxMask *mask) ;
 
-    inline wxBitmap& operator = (const wxBitmap& bitmap) { if (*this == bitmap) return (*this); Ref(bitmap); return *this; }
-    inline bool operator == (const wxBitmap& bitmap) const { return m_refData == bitmap.m_refData; }
-    inline bool operator != (const wxBitmap& bitmap) const { return m_refData != bitmap.m_refData; }
-
     static void InitStandardHandlers();
 
     // raw bitmap access support functions, for internal use only
@@ -205,6 +176,11 @@ public:
     // makes sure that no cached images will be constructed until terminated
     void *BeginRawAccess() ;
     void EndRawAccess() ;
+
+protected:
+    // ref counting code
+    virtual wxObjectRefData *CreateRefData() const;
+    virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const;
 };
 #endif
   // _WX_BITMAP_H_