public:
wxBrushRefData(void);
-
+ wxBrushRefData( const wxBrushRefData& data );
+
int m_style;
wxBitmap m_stipple;
wxColour m_colour;
m_style = 0;
}
+wxBrushRefData::wxBrushRefData( const wxBrushRefData& data )
+{
+ m_style = data.m_style;
+ m_stipple = data.m_stipple;
+ m_colour = data.m_colour;
+}
+
//-----------------------------------------------------------------------------
#define M_BRUSHDATA ((wxBrushRefData *)m_refData)
int wxBrush::GetStyle(void) const
{
+ if (m_refData == NULL)
+ {
+ wxFAIL_MSG( "invalid brush" );
+ return 0;
+ }
+
return M_BRUSHDATA->m_style;
}
wxColour &wxBrush::GetColour(void) const
{
+ if (m_refData == NULL)
+ {
+ wxFAIL_MSG( "invalid brush" );
+ return wxNullColour;
+ }
+
return M_BRUSHDATA->m_colour;
}
wxBitmap *wxBrush::GetStipple(void) const
{
+ if (m_refData == NULL)
+ {
+ wxFAIL_MSG( "invalid brush" );
+ return &wxNullBitmap;
+ }
+
return &M_BRUSHDATA->m_stipple;
}
+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;
+ }
+}