X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/58c837a4e67c0996134cc0947691dc09c5f26687..ef3a5e0aae003c29941c7d41ed6becea4287752d:/src/gtk/brush.cpp diff --git a/src/gtk/brush.cpp b/src/gtk/brush.cpp index 2f945402ce..68d4d985f9 100644 --- a/src/gtk/brush.cpp +++ b/src/gtk/brush.cpp @@ -1,10 +1,10 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: brush.cpp +// Name: src/gtk/brush.cpp // Purpose: // Author: Robert Roebling // Id: $Id$ // Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -50,7 +50,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxBrush,wxGDIObject) wxBrush::wxBrush() { - if (wxTheBrushList) wxTheBrushList->AddBrush( this ); } wxBrush::wxBrush( const wxColour &colour, int style ) @@ -58,45 +57,44 @@ wxBrush::wxBrush( const wxColour &colour, int style ) m_refData = new wxBrushRefData(); M_BRUSHDATA->m_style = style; M_BRUSHDATA->m_colour = colour; - - if (wxTheBrushList) wxTheBrushList->AddBrush( this ); } wxBrush::wxBrush( const wxBitmap &stippleBitmap ) { m_refData = new wxBrushRefData(); - M_BRUSHDATA->m_style = wxSTIPPLE; M_BRUSHDATA->m_colour = *wxBLACK; + M_BRUSHDATA->m_stipple = stippleBitmap; - if (wxTheBrushList) wxTheBrushList->AddBrush( this ); + if (M_BRUSHDATA->m_stipple.GetMask()) + M_BRUSHDATA->m_style = wxSTIPPLE_MASK_OPAQUE; + else + M_BRUSHDATA->m_style = wxSTIPPLE; } wxBrush::wxBrush( const wxBrush &brush ) { Ref( brush ); - - if (wxTheBrushList) wxTheBrushList->AddBrush( this ); } wxBrush::~wxBrush() { - if (wxTheBrushList) wxTheBrushList->RemoveBrush( this ); } wxBrush& wxBrush::operator = ( const wxBrush& brush ) { - if (*this == brush) return (*this); - Ref( brush ); + if ( m_refData != brush.m_refData ) + Ref( brush ); + return *this; } -bool wxBrush::operator == ( const wxBrush& brush ) +bool wxBrush::operator == ( const wxBrush& brush ) const { return m_refData == brush.m_refData; } -bool wxBrush::operator != ( const wxBrush& brush ) +bool wxBrush::operator != ( const wxBrush& brush ) const { return m_refData != brush.m_refData; } @@ -161,6 +159,14 @@ 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; + } } void wxBrush::Unshare()