Change eqauality operator to check if the NSColor objects are the same
instance or if all of the color components (m_red/green/blue) are identical.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31310
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
: m_cocoaNSColor(NULL)
{ Set(colRGB); }
: m_cocoaNSColor(NULL)
{ Set(colRGB); }
+ // initialization using existing NSColor
+ wxColour( WX_NSColor aColor );
+
// implicit conversion from the colour name
wxColour( const wxString &colourName )
{ InitFromName(colourName); }
// implicit conversion from the colour name
wxColour( const wxString &colourName )
{ InitFromName(colourName); }
// comparison
bool operator == (const wxColour& colour) const
{
// comparison
bool operator == (const wxColour& colour) const
{
- // VZ: sure we want to compare NSColor objects for equality here?
+ // TODO: Really compare the NSColor
return (m_cocoaNSColor == colour.m_cocoaNSColor
return (m_cocoaNSColor == colour.m_cocoaNSColor
- && m_red == colour.m_red
+ || (m_red == colour.m_red
&& m_green == colour.m_green
&& m_green == colour.m_green
- && m_blue == colour.m_blue);
+ && m_blue == colour.m_blue));
}
bool operator != (const wxColour& colour) const
{ return !(*this == colour); }
}
bool operator != (const wxColour& colour) const
{ return !(*this == colour); }
(unsigned char)(colRGB >> 8),
(unsigned char)(colRGB >> 16));
}
(unsigned char)(colRGB >> 8),
(unsigned char)(colRGB >> 16));
}
+ void Set( WX_NSColor aColor );
protected:
// puts the object in an invalid, uninitialized state
protected:
// puts the object in an invalid, uninitialized state
[m_cocoaNSColor retain];
}
[m_cocoaNSColor retain];
}
+wxColour::wxColour( WX_NSColor aColor )
+: m_cocoaNSColor(nil)
+{
+ Set(aColor);
+}
+
wxColour& wxColour::operator =(const wxColour& col)
{
m_cocoaNSColor = col.m_cocoaNSColor;
wxColour& wxColour::operator =(const wxColour& col)
{
m_cocoaNSColor = col.m_cocoaNSColor;
+void wxColour::Set( WX_NSColor aColor )
+{
+ [aColor retain];
+ [m_cocoaNSColor release];
+ m_cocoaNSColor = aColor;
+
+ /* Make a temporary color in RGB format and get the values. Note that
+ unless the color was actually RGB to begin with it's likely that
+ these will be fairly bogus. Particulary if the color is a pattern. */
+ NSColor *rgbColor = [m_cocoaNSColor colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
+ m_red = [rgbColor redComponent]*255.0;
+ m_green = [rgbColor greenComponent]*255.0;
+ m_blue = [rgbColor blueComponent]*255.0;
+}
+