derive wxMask from wxMaskBase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62444 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -17,7 +17,7 @@ class WXDLLIMPEXP_FWD_CORE wxPixelDataBase;
|
|||||||
// wxMask
|
// wxMask
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxMask: public wxObject
|
class WXDLLIMPEXP_CORE wxMask: public wxMaskBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxMask();
|
wxMask();
|
||||||
@@ -28,18 +28,15 @@ public:
|
|||||||
wxMask( const wxBitmap& bitmap );
|
wxMask( const wxBitmap& bitmap );
|
||||||
virtual ~wxMask();
|
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
|
// implementation
|
||||||
GdkBitmap *m_bitmap;
|
GdkBitmap *m_bitmap;
|
||||||
|
|
||||||
GdkBitmap *GetBitmap() const;
|
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)
|
DECLARE_DYNAMIC_CLASS(wxMask)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -37,7 +37,7 @@ extern GtkWidget *wxGetRootWindow();
|
|||||||
// wxMask
|
// wxMask
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxMask,wxObject)
|
IMPLEMENT_DYNAMIC_CLASS(wxMask, wxMaskBase)
|
||||||
|
|
||||||
wxMask::wxMask()
|
wxMask::wxMask()
|
||||||
{
|
{
|
||||||
@@ -47,7 +47,7 @@ wxMask::wxMask()
|
|||||||
wxMask::wxMask( const wxBitmap& bitmap, const wxColour& colour )
|
wxMask::wxMask( const wxBitmap& bitmap, const wxColour& colour )
|
||||||
{
|
{
|
||||||
m_bitmap = NULL;
|
m_bitmap = NULL;
|
||||||
Create( bitmap, colour );
|
InitFromColour(bitmap, colour);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if wxUSE_PALETTE
|
#if wxUSE_PALETTE
|
||||||
@@ -61,7 +61,7 @@ wxMask::wxMask( const wxBitmap& bitmap, int paletteIndex )
|
|||||||
wxMask::wxMask( const wxBitmap& bitmap )
|
wxMask::wxMask( const wxBitmap& bitmap )
|
||||||
{
|
{
|
||||||
m_bitmap = NULL;
|
m_bitmap = NULL;
|
||||||
Create( bitmap );
|
InitFromMonoBitmap(bitmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxMask::~wxMask()
|
wxMask::~wxMask()
|
||||||
@@ -70,15 +70,17 @@ wxMask::~wxMask()
|
|||||||
g_object_unref (m_bitmap);
|
g_object_unref (m_bitmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxMask::Create( const wxBitmap& bitmap,
|
void wxMask::FreeData()
|
||||||
const wxColour& colour )
|
|
||||||
{
|
{
|
||||||
if (m_bitmap)
|
if (m_bitmap)
|
||||||
{
|
{
|
||||||
g_object_unref (m_bitmap);
|
g_object_unref (m_bitmap);
|
||||||
m_bitmap = NULL;
|
m_bitmap = NULL;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxMask::InitFromColour(const wxBitmap& bitmap, const wxColour& colour)
|
||||||
|
{
|
||||||
const int w = bitmap.GetWidth();
|
const int w = bitmap.GetWidth();
|
||||||
const int h = bitmap.GetHeight();
|
const int h = bitmap.GetHeight();
|
||||||
|
|
||||||
@@ -136,28 +138,8 @@ bool wxMask::Create( const wxBitmap& bitmap,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if wxUSE_PALETTE
|
bool wxMask::InitFromMonoBitmap(const wxBitmap& bitmap)
|
||||||
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 )
|
|
||||||
{
|
|
||||||
if (m_bitmap)
|
|
||||||
{
|
|
||||||
g_object_unref (m_bitmap);
|
|
||||||
m_bitmap = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!bitmap.IsOk()) return false;
|
if (!bitmap.IsOk()) return false;
|
||||||
|
|
||||||
wxCHECK_MSG( bitmap.GetDepth() == 1, false, wxT("Cannot create mask from colour bitmap") );
|
wxCHECK_MSG( bitmap.GetDepth() == 1, false, wxT("Cannot create mask from colour bitmap") );
|
||||||
|
Reference in New Issue
Block a user