-wxColour& wxColour::operator = ( const wxString& colourName )
-{
- UnRef();
- wxNode *node = (wxNode *) NULL;
- if ((wxTheColourDatabase) && (node = wxTheColourDatabase->Find(colourName)) )
- {
- wxColour *col = (wxColour*)node->Data();
- if (col) Ref( *col );
- }
- else
- {
- m_refData = new wxColourRefData();
- if (!gdk_color_parse( colourName, &M_COLDATA->m_color ))
- {
- wxFAIL_MSG( "wxColour: couldn't find colour" );
- delete m_refData;
- m_refData = (wxObjectRefData *) NULL;
- }
- }
- return *this;
+ if (!m_refData || !col.m_refData)
+ return false;
+
+ const GdkColor& own = M_COLDATA->m_color;
+ const GdkColor& other = wx_static_cast(wxColourRefData*, col.m_refData)->m_color;
+ return own.red == other.red &&
+ own.blue == other.blue &&
+ own.green == other.green;