]>
git.saurik.com Git - wxWidgets.git/blob - src/generic/mask.cpp
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: src/generic/mask.cpp
3 // Purpose: generic wxMask implementation
4 // Author: Vadim Zeitlin
6 // Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwindows.org>
7 // Licence: wxWindows licence
8 ///////////////////////////////////////////////////////////////////////////////
10 // ============================================================================
12 // ============================================================================
14 // ----------------------------------------------------------------------------
16 // ----------------------------------------------------------------------------
18 // for compilers that support precompilation, includes "wx.h".
19 #include "wx/wxprec.h"
26 #include "wx/bitmap.h"
30 #if wxUSE_GENERIC_MASK
32 // ============================================================================
33 // wxMask implementation
34 // ============================================================================
36 IMPLEMENT_DYNAMIC_CLASS(wxMask
, wxObject
)
38 void wxMask::FreeData()
40 m_bitmap
= wxNullBitmap
;
43 bool wxMask::InitFromColour(const wxBitmap
& bitmap
, const wxColour
& colour
)
46 const wxColour
clr(bitmap
.QuantizeColour(colour
));
48 wxImage
imgSrc(bitmap
.ConvertToImage());
49 imgSrc
.SetMask(false);
50 wxImage
image(imgSrc
.ConvertToMono(clr
.Red(), clr
.Green(), clr
.Blue()));
54 m_bitmap
= wxBitmap(image
, 1);
56 return m_bitmap
.IsOk();
62 #endif // wxUSE_IMAGE/!wxUSE_IMAGE
65 bool wxMask::InitFromMonoBitmap(const wxBitmap
& bitmap
)
67 wxCHECK_MSG( bitmap
.IsOk(), false, wxT("Invalid bitmap") );
68 wxCHECK_MSG( bitmap
.GetDepth() == 1, false, wxT("Cannot create mask from colour bitmap") );
75 #endif // wxUSE_GENERIC_MASK