]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/brush.cpp
fix for a fatal bug in wxMGL's wxDir
[wxWidgets.git] / src / gtk1 / brush.cpp
index 2f945402ce47202fb9a70cdabc1bd1c1cffdc481..68d4d985f9722bef02dac87bac37afae3935c41c 100644 (file)
@@ -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()