+void wxBrush::SetColour( const wxColour& col )
+{
+  Unshare();
+  M_BRUSHDATA->m_colour = col;
+}
+
+void wxBrush::SetColour( const wxString& col )
+{
+  Unshare();
+  M_BRUSHDATA->m_colour = col;
+}
+
+void wxBrush::SetColour( unsigned char r, unsigned char g, unsigned char b )
+{
+  Unshare();
+  M_BRUSHDATA->m_colour.Set( r, g, b );
+}
+
+void wxBrush::SetStyle( int style )
+{
+  Unshare();
+  M_BRUSHDATA->m_style = style;
+}
+
+void wxBrush::SetStipple( const wxBitmap& stipple )
+{
+  Unshare();
+  M_BRUSHDATA->m_stipple = stipple;
+}
+
+void wxBrush::Unshare(void)
+{
+  if (!m_refData)
+  {
+    m_refData = new wxBrushRefData();
+  }
+  else
+  {
+    wxBrushRefData* ref = new wxBrushRefData( *(wxBrushRefData*)m_refData );
+    UnRef();
+    m_refData = ref;
+  }
+}