]> git.saurik.com Git - wxWidgets.git/commitdiff
derive wxMask from wxMaskBase
authorPaul Cornett <paulcor@bullseye.com>
Sat, 17 Oct 2009 20:06:34 +0000 (20:06 +0000)
committerPaul Cornett <paulcor@bullseye.com>
Sat, 17 Oct 2009 20:06:34 +0000 (20:06 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62444 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/gtk/bitmap.h
src/gtk/bitmap.cpp

index 32a612d4a9768ecbcdfe4a6ec9e9f210dd335dcf..b2d1c0eb3778f3c62d00ac5ccc496e2306adf016 100644 (file)
@@ -17,7 +17,7 @@ class WXDLLIMPEXP_FWD_CORE wxPixelDataBase;
 // wxMask
 //-----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_CORE wxMask: public wxObject
+class WXDLLIMPEXP_CORE wxMask: public wxMaskBase
 {
 public:
     wxMask();
@@ -28,18 +28,15 @@ public:
     wxMask( const wxBitmap& bitmap );
     virtual ~wxMask();
 
-    bool Create( const wxBitmap& bitmap, const wxColour& colour );
-#if wxUSE_PALETTE
-    bool Create( const wxBitmap& bitmap, int paletteIndex );
-#endif // wxUSE_PALETTE
-    bool Create( const wxBitmap& bitmap );
-
     // implementation
     GdkBitmap   *m_bitmap;
-
     GdkBitmap *GetBitmap() const;
 
-private:
+protected:
+    virtual void FreeData();
+    virtual bool InitFromColour(const wxBitmap& bitmap, const wxColour& colour);
+    virtual bool InitFromMonoBitmap(const wxBitmap& bitmap);
+
     DECLARE_DYNAMIC_CLASS(wxMask)
 };
 
index 65619c3d572d09df2ede79b06aeb7c1477b1702a..13d315e699b43e33aeaf7b26ae4228624f0463a2 100644 (file)
@@ -37,7 +37,7 @@ extern GtkWidget *wxGetRootWindow();
 // wxMask
 //-----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxMask,wxObject)
+IMPLEMENT_DYNAMIC_CLASS(wxMask, wxMaskBase)
 
 wxMask::wxMask()
 {
@@ -47,7 +47,7 @@ wxMask::wxMask()
 wxMask::wxMask( const wxBitmap& bitmap, const wxColour& colour )
 {
     m_bitmap = NULL;
-    Create( bitmap, colour );
+    InitFromColour(bitmap, colour);
 }
 
 #if wxUSE_PALETTE
@@ -61,7 +61,7 @@ wxMask::wxMask( const wxBitmap& bitmap, int paletteIndex )
 wxMask::wxMask( const wxBitmap& bitmap )
 {
     m_bitmap = NULL;
-    Create( bitmap );
+    InitFromMonoBitmap(bitmap);
 }
 
 wxMask::~wxMask()
@@ -70,15 +70,17 @@ wxMask::~wxMask()
         g_object_unref (m_bitmap);
 }
 
-bool wxMask::Create( const wxBitmap& bitmap,
-                     const wxColour& colour )
+void wxMask::FreeData()
 {
     if (m_bitmap)
     {
         g_object_unref (m_bitmap);
         m_bitmap = NULL;
     }
+}
 
+bool wxMask::InitFromColour(const wxBitmap& bitmap, const wxColour& colour)
+{
     const int w = bitmap.GetWidth();
     const int h = bitmap.GetHeight();
 
@@ -136,28 +138,8 @@ bool wxMask::Create( const wxBitmap& bitmap,
     return true;
 }
 
-#if wxUSE_PALETTE
-bool wxMask::Create( const wxBitmap& bitmap, int paletteIndex )
-{
-    unsigned char r,g,b;
-    wxPalette *pal = bitmap.GetPalette();
-
-    wxCHECK_MSG( pal, false, wxT("Cannot create mask from bitmap without palette") );
-
-    pal->GetRGB(paletteIndex, &r, &g, &b);
-
-    return Create(bitmap, wxColour(r, g, b));
-}
-#endif // wxUSE_PALETTE
-
-bool wxMask::Create( const wxBitmap& bitmap )
+bool wxMask::InitFromMonoBitmap(const wxBitmap& bitmap)
 {
-    if (m_bitmap)
-    {
-        g_object_unref (m_bitmap);
-        m_bitmap = NULL;
-    }
-
     if (!bitmap.IsOk()) return false;
 
     wxCHECK_MSG( bitmap.GetDepth() == 1, false, wxT("Cannot create mask from colour bitmap") );