Add constructor and Set taking NSColor.
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
This commit is contained in:
parent
1837499892
commit
d8fdd58fa3
@ -31,6 +31,9 @@ public:
|
||||
: 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); }
|
||||
@ -57,11 +60,11 @@ public:
|
||||
// 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
|
||||
&& m_red == colour.m_red
|
||||
|| (m_red == colour.m_red
|
||||
&& m_green == colour.m_green
|
||||
&& m_blue == colour.m_blue);
|
||||
&& m_blue == colour.m_blue));
|
||||
}
|
||||
bool operator != (const wxColour& colour) const
|
||||
{ return !(*this == colour); }
|
||||
@ -76,6 +79,7 @@ public:
|
||||
(unsigned char)(colRGB >> 8),
|
||||
(unsigned char)(colRGB >> 16));
|
||||
}
|
||||
void Set( WX_NSColor aColor );
|
||||
|
||||
protected:
|
||||
// puts the object in an invalid, uninitialized state
|
||||
|
@ -39,6 +39,12 @@ wxColour::wxColour (const wxColour& col)
|
||||
[m_cocoaNSColor retain];
|
||||
}
|
||||
|
||||
wxColour::wxColour( WX_NSColor aColor )
|
||||
: m_cocoaNSColor(nil)
|
||||
{
|
||||
Set(aColor);
|
||||
}
|
||||
|
||||
wxColour& wxColour::operator =(const wxColour& col)
|
||||
{
|
||||
m_cocoaNSColor = col.m_cocoaNSColor;
|
||||
@ -80,3 +86,18 @@ void wxColour::Set (unsigned char r, unsigned char g, unsigned char b)
|
||||
m_blue = b;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user