X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b823f5a145f4823ce823591824855c34204936e4..8e92ccef9ce18df8c67d6105ac553dba93cf0e43:/src/msw/brush.cpp diff --git a/src/msw/brush.cpp b/src/msw/brush.cpp index 3f31a36166..66206940e6 100644 --- a/src/msw/brush.cpp +++ b/src/msw/brush.cpp @@ -33,9 +33,7 @@ #include "assert.h" -#if !USE_SHARED_LIBRARIES IMPLEMENT_DYNAMIC_CLASS(wxBrush, wxGDIObject) -#endif wxBrushRefData::wxBrushRefData(void) { @@ -60,14 +58,10 @@ wxBrushRefData::~wxBrushRefData(void) // Brushes wxBrush::wxBrush(void) { - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); } wxBrush::~wxBrush() { - if (wxTheBrushList) - wxTheBrushList->RemoveBrush(this); } wxBrush::wxBrush(const wxColour& col, int Style) @@ -80,39 +74,25 @@ wxBrush::wxBrush(const wxColour& col, int Style) RealizeResource(); - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::wxBrush(const wxString& col, int Style) -{ - m_refData = new wxBrushRefData; - - M_BRUSHDATA->m_colour = col; - M_BRUSHDATA->m_style = Style; - M_BRUSHDATA->m_hBrush = 0; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); } 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(); - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); } -bool wxBrush::RealizeResource(void) +bool wxBrush::RealizeResource(void) { if (M_BRUSHDATA && (M_BRUSHDATA->m_hBrush == 0)) { @@ -139,6 +119,7 @@ bool wxBrush::RealizeResource(void) // - could choose white always for a quick solution break; ***/ +#ifndef __WXMICROWIN__ case wxBDIAGONAL_HATCH: M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreateHatchBrush(HS_BDIAGONAL,ms_colour) ; break ; @@ -163,6 +144,13 @@ 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 ; +#endif case wxSOLID: default: M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreateSolidBrush(ms_colour) ; @@ -182,7 +170,7 @@ WXHANDLE wxBrush::GetResourceHandle(void) return (WXHANDLE) M_BRUSHDATA->m_hBrush; } -bool wxBrush::FreeResource(bool force) +bool wxBrush::FreeResource(bool WXUNUSED(force)) { if (M_BRUSHDATA && (M_BRUSHDATA->m_hBrush != 0)) { @@ -193,7 +181,7 @@ bool wxBrush::FreeResource(bool force) else return FALSE; } -bool wxBrush::IsFree(void) +bool wxBrush::IsFree() const { return (M_BRUSHDATA && (M_BRUSHDATA->m_hBrush == 0)); } @@ -223,16 +211,7 @@ void wxBrush::SetColour(const wxColour& col) RealizeResource(); } -void wxBrush::SetColour(const wxString& col) -{ - Unshare(); - - M_BRUSHDATA->m_colour = col; - - RealizeResource(); -} - -void wxBrush::SetColour(const unsigned char r, const unsigned char g, const unsigned char b) +void wxBrush::SetColour(unsigned char r, unsigned char g, unsigned char b) { Unshare(); @@ -255,6 +234,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(); }