X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ad81651f00edc6f489d9b6a0839d316a964fd521..8e0e4b1b644fd58825f7c4c80775d9507020ffac:/src/msw/brush.cpp diff --git a/src/msw/brush.cpp b/src/msw/brush.cpp index 7e107855c9..825410a28b 100644 --- a/src/msw/brush.cpp +++ b/src/msw/brush.cpp @@ -86,8 +86,12 @@ wxBrush::wxBrush(const wxBitmap& stipple) { m_refData = new wxBrushRefData; - M_BRUSHDATA->m_style = wxSTIPPLE; M_BRUSHDATA->m_stipple = stipple; + if (M_BRUSHDATA->m_stipple.GetMask()) + M_BRUSHDATA->m_style = wxSTIPPLE_MASK_OPAQUE; + else + M_BRUSHDATA->m_style = wxSTIPPLE; + M_BRUSHDATA->m_hBrush = 0; RealizeResource(); @@ -96,7 +100,7 @@ wxBrush::wxBrush(const wxBitmap& stipple) wxTheBrushList->AddBrush(this); } -bool wxBrush::RealizeResource(void) +bool wxBrush::RealizeResource(void) { if (M_BRUSHDATA && (M_BRUSHDATA->m_hBrush == 0)) { @@ -147,6 +151,12 @@ bool wxBrush::RealizeResource(void) else M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreateSolidBrush(ms_colour) ; break ; + case wxSTIPPLE_MASK_OPAQUE: + if (M_BRUSHDATA->m_stipple.Ok() && M_BRUSHDATA->m_stipple.GetMask()) + M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreatePatternBrush((HBITMAP) M_BRUSHDATA->m_stipple.GetMask()->GetMaskBitmap()); + else + M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreateSolidBrush(ms_colour) ; + break ; case wxSOLID: default: M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreateSolidBrush(ms_colour) ; @@ -230,6 +240,10 @@ void wxBrush::SetStipple(const wxBitmap& Stipple) Unshare(); M_BRUSHDATA->m_stipple = Stipple; + if (M_BRUSHDATA->m_stipple.GetMask()) + M_BRUSHDATA->m_style = wxSTIPPLE_MASK_OPAQUE; + else + M_BRUSHDATA->m_style = wxSTIPPLE; RealizeResource(); }