X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3d37a9682b47e56edfec403c40f686df3b485e0c..0738b901b17340f09766524b8d9d79e9ed1268e7:/src/gtk/bitmap.cpp?ds=inline diff --git a/src/gtk/bitmap.cpp b/src/gtk/bitmap.cpp index d79a7ad397..13d315e699 100644 --- a/src/gtk/bitmap.cpp +++ b/src/gtk/bitmap.cpp @@ -37,31 +37,31 @@ extern GtkWidget *wxGetRootWindow(); // wxMask //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxMask,wxObject) +IMPLEMENT_DYNAMIC_CLASS(wxMask, wxMaskBase) wxMask::wxMask() { - m_bitmap = (GdkBitmap *) NULL; + m_bitmap = NULL; } wxMask::wxMask( const wxBitmap& bitmap, const wxColour& colour ) { - m_bitmap = (GdkBitmap *) NULL; - Create( bitmap, colour ); + m_bitmap = NULL; + InitFromColour(bitmap, colour); } #if wxUSE_PALETTE wxMask::wxMask( const wxBitmap& bitmap, int paletteIndex ) { - m_bitmap = (GdkBitmap *) NULL; + m_bitmap = NULL; Create( bitmap, paletteIndex ); } #endif // wxUSE_PALETTE wxMask::wxMask( const wxBitmap& bitmap ) { - m_bitmap = (GdkBitmap *) NULL; - Create( bitmap ); + m_bitmap = NULL; + 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 = (GdkBitmap*) NULL; + 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 = (GdkBitmap*) NULL; - } - if (!bitmap.IsOk()) return false; wxCHECK_MSG( bitmap.GetDepth() == 1, false, wxT("Cannot create mask from colour bitmap") ); @@ -179,7 +161,7 @@ GdkBitmap *wxMask::GetBitmap() const } //----------------------------------------------------------------------------- -// wxBitmap +// wxBitmapRefData //----------------------------------------------------------------------------- class wxBitmapRefData: public wxGDIRefData @@ -203,14 +185,14 @@ public: wxBitmapRefData::wxBitmapRefData() { - m_pixmap = (GdkPixmap *) NULL; - m_pixbuf = (GdkPixbuf *) NULL; - m_mask = (wxMask *) NULL; + m_pixmap = NULL; + m_pixbuf = NULL; + m_mask = NULL; m_width = 0; m_height = 0; m_bpp = 0; #if wxUSE_PALETTE - m_palette = (wxPalette *) NULL; + m_palette = NULL; #endif // wxUSE_PALETTE } @@ -226,17 +208,15 @@ wxBitmapRefData::~wxBitmapRefData() #endif // wxUSE_PALETTE } + +//----------------------------------------------------------------------------- +// wxBitmap //----------------------------------------------------------------------------- #define M_BMPDATA static_cast(m_refData) IMPLEMENT_DYNAMIC_CLASS(wxBitmap,wxGDIObject) -wxBitmap::wxBitmap(int width, int height, int depth) -{ - Create(width, height, depth); -} - wxBitmap::wxBitmap(const wxString &filename, wxBitmapType type) { LoadFile(filename, type); @@ -574,7 +554,7 @@ int wxBitmap::GetDepth() const wxMask *wxBitmap::GetMask() const { - wxCHECK_MSG( IsOk(), (wxMask *) NULL, wxT("invalid bitmap") ); + wxCHECK_MSG( IsOk(), NULL, wxT("invalid bitmap") ); return M_BMPDATA->m_mask; } @@ -660,7 +640,7 @@ bool wxBitmap::LoadFile( const wxString &name, wxBitmapType type ) if (type == wxBITMAP_TYPE_XPM) { - GdkBitmap *mask = (GdkBitmap*) NULL; + GdkBitmap *mask = NULL; SetPixmap(gdk_pixmap_create_from_xpm(wxGetRootWindow()->window, &mask, NULL, name.fn_str())); if (!M_BMPDATA) return false; // do not set the mask @@ -734,7 +714,7 @@ void wxBitmap::SetPixmap( GdkPixmap *pixmap ) GdkPixmap *wxBitmap::GetPixmap() const { - wxCHECK_MSG( IsOk(), (GdkPixmap *) NULL, wxT("invalid bitmap") ); + wxCHECK_MSG( IsOk(), NULL, wxT("invalid bitmap") ); // create the pixmap on the fly if we use Pixbuf representation: if (M_BMPDATA->m_pixmap == NULL) @@ -856,6 +836,7 @@ void wxBitmap::PurgeOtherRepresentations(wxBitmap::Representation keep) } } +#ifdef wxHAS_RAW_BITMAP void *wxBitmap::GetRawData(wxPixelDataBase& data, int bpp) { void* bits = NULL; @@ -876,6 +857,7 @@ void *wxBitmap::GetRawData(wxPixelDataBase& data, int bpp) void wxBitmap::UngetRawData(wxPixelDataBase& WXUNUSED(data)) { } +#endif // wxHAS_RAW_BITMAP bool wxBitmap::HasAlpha() const {