+ // copy ctors and assignment operators
+ wxColour( const wxColour& col );
+ wxColour& operator = ( const wxColour& col );
+
+ virtual ~wxColour();
+
+ // accessors
+ bool Ok() const { return m_cocoaNSColor; }
+ WX_NSColor GetNSColor() { return m_cocoaNSColor; }
+
+ unsigned char Red() const { return m_red; }
+ unsigned char Green() const { return m_green; }
+ unsigned char Blue() const { return m_blue; }
+
+ // comparison
+ bool operator == (const wxColour& colour) const
+ {
+ // TODO: Really compare the NSColor
+ return (m_cocoaNSColor == colour.m_cocoaNSColor
+ || (m_red == colour.m_red
+ && m_green == colour.m_green
+ && m_blue == colour.m_blue));
+ }
+ bool operator != (const wxColour& colour) const
+ { return !(*this == colour); }
+
+ // Set() functions
+ void Set( unsigned char red, unsigned char green, unsigned char blue );
+ void Set( unsigned long colRGB )
+ {
+ // we don't need to know sizeof(long) here because we assume that the three
+ // least significant bytes contain the R, G and B values
+ Set((unsigned char)colRGB,
+ (unsigned char)(colRGB >> 8),
+ (unsigned char)(colRGB >> 16));
+ }
+ void Set( WX_NSColor aColor );
+
+protected:
+ // puts the object in an invalid, uninitialized state
+ void Init();
+
+ // create the object from name, leaves it uninitialized if it failed
+ void InitFromName(const wxString& col);