X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c4fa282ce14a102c5e55aaaec74b7d3b0a605baf..556151f5ff1bd2fa44de2237a3ad03694c2e3883:/src/gtk/colour.cpp?ds=sidebyside diff --git a/src/gtk/colour.cpp b/src/gtk/colour.cpp index ff7c526c45..bc76dbfe65 100644 --- a/src/gtk/colour.cpp +++ b/src/gtk/colour.cpp @@ -11,6 +11,7 @@ #include "wx/wxprec.h" #include "wx/colour.h" + #include "wx/gtk/private.h" #include @@ -81,51 +82,6 @@ void wxColourRefData::AllocColour( GdkColormap *cmap ) IMPLEMENT_DYNAMIC_CLASS(wxColour,wxGDIObject) -wxColour::wxColour( unsigned char red, unsigned char green, unsigned char blue ) -{ - m_refData = new wxColourRefData; - M_COLDATA->m_color.red = ((unsigned short)red) << SHIFT; - M_COLDATA->m_color.green = ((unsigned short)green) << SHIFT; - M_COLDATA->m_color.blue = ((unsigned short)blue) << SHIFT; - M_COLDATA->m_color.pixel = 0; -} - -/* static */ -wxColour wxColour::CreateByName(const wxString& name) -{ - wxColour col; - - GdkColor colGDK; - if ( gdk_color_parse( wxGTK_CONV( name ), &colGDK ) ) - { - wxColourRefData *refData = new wxColourRefData; - refData->m_color = colGDK; - col.m_refData = refData; - } - - return col; -} - - -void wxColour::InitFromName( const wxString &colourName ) -{ - // check the cache first - if ( wxTheColourDatabase ) - { - *this = wxTheColourDatabase->Find(colourName); - } - - if ( !Ok() ) - { - *this = CreateByName(colourName); - } - - if ( !Ok() ) - { - wxFAIL_MSG( wxT("wxColour: couldn't find colour") ); - } -} - wxColour::~wxColour() { } @@ -155,7 +111,7 @@ wxObjectRefData *wxColour::CloneRefData(const wxObjectRefData *data) const return new wxColourRefData(*(wxColourRefData *)data); } -void wxColour::Set( unsigned char red, unsigned char green, unsigned char blue ) +void wxColour::InitWith( unsigned char red, unsigned char green, unsigned char blue ) { AllocExclusive(); @@ -209,3 +165,18 @@ GdkColor *wxColour::GetColor() const return &M_COLDATA->m_color; } + +bool wxColour::FromString(const wxChar *str) +{ + GdkColor colGDK; + if ( gdk_color_parse( wxGTK_CONV_SYS( str ), &colGDK ) ) + { + UnRef(); + + m_refData = new wxColourRefData; + M_COLDATA->m_color = colGDK; + return true; + } + + return wxColourBase::FromString(str); +}