git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24279 
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
     inline bool operator == (const wxColour& colour) const { return (m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue); }
     
     inline bool operator != (const wxColour& colour) const { return (!(m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue)); }
     inline bool operator == (const wxColour& colour) const { return (m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue); }
     
     inline bool operator != (const wxColour& colour) const { return (!(m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue)); }
+
+    // Get colour from name or wxNullColour
+    static wxColour CreateByName(const wxString& name);
+
     // Allocate a colour, or nearest colour, using the given display.
     // If realloc is TRUE, ignore the existing pixel, otherwise just return
     // the existing one.
     // Allocate a colour, or nearest colour, using the given display.
     // If realloc is TRUE, ignore the existing pixel, otherwise just return
     // the existing one.
 
     *this = wxTheColourDatabase->Find(name);
 }
 
     *this = wxTheColourDatabase->Find(name);
 }
 
+/* static */
+wxColour wxColour::CreateByName(const wxString& name)
+{
+    wxColour col;
+
+    Display *dpy = wxGlobalDisplay();
+    WXColormap colormap = wxTheApp->GetMainColormap( dpy );
+    XColor xcol;
+    if ( XParseColor( dpy, (Colormap)colormap, name.mb_str(), &xcol ) )
+    {
+        col.m_red = xcol.red & 0xff;
+        col.m_green = xcol.green & 0xff;
+        col.m_blue = xcol.blue & 0xff;
+        col.m_isInit = TRUE;
+        col.m_pixel = -1;
+    }
+
+    return col;
+}
+
 wxColour::~wxColour ()
 {
 }
 wxColour::~wxColour ()
 {
 }