]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_colour.i
Avoid crash in SelectAll if there are no nodes besides the root
[wxWidgets.git] / wxPython / src / _colour.i
index b69c056343bf8cb5fd523f9089ab1f15422813d7..20467993dc873aac83cc68979bb8842f44a121b0 100644 (file)
 %newgroup;
 
 
+enum {
+    wxC2S_NAME,             // return colour name, when possible
+    wxC2S_CSS_SYNTAX,       // return colour in rgb(r,g,b) syntax
+    wxC2S_HTML_SYNTAX,      // return colour in #rrggbb syntax     
+};
+
+
 DocStr(wxColour,
 "A colour is an object representing a combination of Red, Green, and
 Blue (RGB) intensity values, and is used to determine drawing colours,
@@ -98,6 +105,16 @@ initialised with RGB values).", "");
 ``wx.TheColourDatabase``.", "",
         SetFromName);
     
+    DocDeclStr(
+        wxString , GetAsString(long flags = wxC2S_NAME | wxC2S_CSS_SYNTAX) const,
+        "Return the colour as a string.  Acceptable flags are:
+
+            =================== ==================================
+            wx.C2S_NAME          return colour name, when possible
+            wx.C2S_CSS_SYNTAX    return colour in rgb(r,g,b) syntax
+            wx.C2S_HTML_SYNTAX   return colour in #rrggbb syntax     
+            =================== ==================================", "");
+    
     
     DocDeclStr(
         long , GetPixel() const,
@@ -106,14 +123,32 @@ COLORREF is returned. On X, an allocated pixel value is returned.  -1
 is returned if the pixel is invalid (on X, unallocated).", "");
     
     
-    DocDeclStr(
-        bool , operator==(const wxColour& colour) const,
-        "Compare colours for equality", "");
-    
-    DocDeclStr(
-        bool , operator!=(const wxColour& colour) const,
-        "Compare colours for inequality", "");
-    
+    %extend {
+        KeepGIL(__eq__);
+        DocStr(__eq__, "Compare colours for equality.", "");
+        bool __eq__(PyObject* other) {
+            wxColour  temp, *obj = &temp;
+            if ( other == Py_None ) return false;
+            if ( ! wxColour_helper(other, &obj) ) {
+                PyErr_Clear();
+                return false;
+            }
+            return self->operator==(*obj);
+        }
+
+        
+        KeepGIL(__ne__);
+        DocStr(__ne__, "Compare colours for inequality.", "");
+        bool __ne__(PyObject* other) {
+            wxColour  temp, *obj = &temp;
+            if ( other == Py_None ) return true;
+            if ( ! wxColour_helper(other, &obj)) {
+                PyErr_Clear();
+                return true;
+            }
+            return self->operator!=(*obj);
+        }
+    }
 
 
     %extend {