X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a614483c35fce149e0394996420fc5ebc5a1493..125e7c11c16f23daa4c594f3b8d90194099c2394:/src/gtk/bitmap.cpp diff --git a/src/gtk/bitmap.cpp b/src/gtk/bitmap.cpp index 7811f87e54..03b77eb5a3 100644 --- a/src/gtk/bitmap.cpp +++ b/src/gtk/bitmap.cpp @@ -14,17 +14,13 @@ #ifndef WX_PRECOMP #include "wx/app.h" - #include "wx/palette.h" #include "wx/icon.h" #include "wx/math.h" #include "wx/image.h" #include "wx/colour.h" #endif -// HP aCC for PA-RISC can't compile rawbmp.h -#if !defined(__HP_aCC) || !defined(__hppa) - #include "wx/rawbmp.h" -#endif +#include "wx/rawbmp.h" #include "wx/gtk/private/object.h" @@ -40,7 +36,7 @@ extern GtkWidget *wxGetRootWindow(); // wxMask //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxMask,wxObject) +IMPLEMENT_DYNAMIC_CLASS(wxMask, wxMaskBase) wxMask::wxMask() { @@ -50,7 +46,7 @@ wxMask::wxMask() wxMask::wxMask( const wxBitmap& bitmap, const wxColour& colour ) { m_bitmap = NULL; - Create( bitmap, colour ); + InitFromColour(bitmap, colour); } #if wxUSE_PALETTE @@ -64,7 +60,7 @@ wxMask::wxMask( const wxBitmap& bitmap, int paletteIndex ) wxMask::wxMask( const wxBitmap& bitmap ) { m_bitmap = NULL; - Create( bitmap ); + InitFromMonoBitmap(bitmap); } wxMask::~wxMask() @@ -73,15 +69,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(); @@ -139,28 +137,8 @@ bool wxMask::Create( const wxBitmap& bitmap, return true; } -#if wxUSE_PALETTE -bool wxMask::Create( const wxBitmap& bitmap, int paletteIndex ) +bool wxMask::InitFromMonoBitmap(const wxBitmap& bitmap) { - 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 ) -{ - 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") ); @@ -182,7 +160,7 @@ GdkBitmap *wxMask::GetBitmap() const } //----------------------------------------------------------------------------- -// wxBitmap +// wxBitmapRefData //----------------------------------------------------------------------------- class wxBitmapRefData: public wxGDIRefData @@ -199,9 +177,6 @@ public: int m_width; int m_height; int m_bpp; -#if wxUSE_PALETTE - wxPalette *m_palette; -#endif // wxUSE_PALETTE }; wxBitmapRefData::wxBitmapRefData() @@ -212,9 +187,6 @@ wxBitmapRefData::wxBitmapRefData() m_width = 0; m_height = 0; m_bpp = 0; -#if wxUSE_PALETTE - m_palette = NULL; -#endif // wxUSE_PALETTE } wxBitmapRefData::~wxBitmapRefData() @@ -224,22 +196,17 @@ wxBitmapRefData::~wxBitmapRefData() if (m_pixbuf) g_object_unref (m_pixbuf); delete m_mask; -#if wxUSE_PALETTE - delete m_palette; -#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); @@ -689,9 +656,7 @@ bool wxBitmap::LoadFile( const wxString &name, wxBitmapType type ) #if wxUSE_PALETTE wxPalette *wxBitmap::GetPalette() const { - wxCHECK_MSG(IsOk(), NULL, wxT("invalid bitmap")); - - return M_BMPDATA->m_palette; + return NULL; } void wxBitmap::SetPalette(const wxPalette& WXUNUSED(palette)) @@ -859,7 +824,7 @@ void wxBitmap::PurgeOtherRepresentations(wxBitmap::Representation keep) } } -#if !defined(__HP_aCC) || !defined(__hppa) +#ifdef wxHAS_RAW_BITMAP void *wxBitmap::GetRawData(wxPixelDataBase& data, int bpp) { void* bits = NULL; @@ -880,7 +845,7 @@ void *wxBitmap::GetRawData(wxPixelDataBase& data, int bpp) void wxBitmap::UngetRawData(wxPixelDataBase& WXUNUSED(data)) { } -#endif +#endif // wxHAS_RAW_BITMAP bool wxBitmap::HasAlpha() const { @@ -923,10 +888,6 @@ wxGDIRefData* wxBitmap::CloneGDIRefData(const wxGDIRefData* data) const gdk_draw_drawable(newRef->m_mask->m_bitmap, gc, oldRef->m_mask->m_bitmap, 0, 0, 0, 0, -1, -1); } -#if wxUSE_PALETTE - // implement this if SetPalette is ever implemented - wxASSERT(oldRef->m_palette == NULL); -#endif return newRef; }