X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5219c4905e0f712c478110b4766cd9bee43550c9..5c7b506103cfc078a821860766e31c47d595e07f:/src/mac/carbon/colour.cpp diff --git a/src/mac/carbon/colour.cpp b/src/mac/carbon/colour.cpp index b2a7f5884e..c8b4d91946 100644 --- a/src/mac/carbon/colour.cpp +++ b/src/mac/carbon/colour.cpp @@ -26,15 +26,6 @@ wxColour::wxColour(const RGBColor& col) InitRGBColor(col); } -wxColour::wxColour( const wxColour& col ) -{ - m_red = col.m_red; - m_green = col.m_green; - m_blue = col.m_blue; - m_alpha = col.m_alpha; - m_cgColour = col.m_cgColour; -} - wxColour::wxColour(CGColorRef col) { InitCGColorRef(col); @@ -47,10 +38,6 @@ void wxColour::GetRGBColor( RGBColor *col ) const col->green = (m_green << 8) + m_green; } -wxColour::~wxColour () -{ -} - wxColour& wxColour::operator=(const RGBColor& col) { InitRGBColor(col); @@ -83,11 +70,11 @@ void wxColour::InitRGBA (ChannelType r, ChannelType g, ChannelType b, ChannelTyp CGColorRef col = 0 ; #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 if ( CGColorCreateGenericRGB ) - col = CGColorCreateGenericRGB( r / 255.0, g / 255.0, b / 255.0, a / 255.0 ); + col = CGColorCreateGenericRGB( (CGFloat)(r / 255.0), (CGFloat) (g / 255.0), (CGFloat) (b / 255.0), (CGFloat) (a / 255.0) ); else #endif { - CGFloat components[4] = { r / 255.0, g / 255.0, b / 255.0, a / 255.0 } ; + CGFloat components[4] = { (CGFloat)(r / 255.0), (CGFloat) (g / 255.0), (CGFloat) (b / 255.0), (CGFloat) (a / 255.0) } ; col = CGColorCreate( wxMacGetGenericRGBColorSpace() , components ) ; } m_cgColour.reset( col ); @@ -102,11 +89,13 @@ void wxColour::InitRGBColor( const RGBColor& col ) CGColorRef cfcol; #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 if ( CGColorCreateGenericRGB ) - cfcol = CGColorCreateGenericRGB( col.red / 65535.0, col.green / 65535.0, col.blue / 65535.0, 1.0 ); + cfcol = CGColorCreateGenericRGB((CGFloat)(col.red / 65535.0), (CGFloat)(col.green / 65535.0), + (CGFloat)(col.blue / 65535.0), (CGFloat) 1.0 ); else #endif { - CGFloat components[4] = { col.red / 65535.0, col.green / 65535.0, col.blue / 65535.0, 1.0 } ; + CGFloat components[4] = { (CGFloat)(col.red / 65535.0), (CGFloat)(col.green / 65535.0), + (CGFloat)(col.blue / 65535.0), (CGFloat) 1.0 } ; cfcol = CGColorCreate( wxMacGetGenericRGBColorSpace() , components ) ; } m_cgColour.reset( cfcol ); @@ -116,17 +105,25 @@ void wxColour::InitCGColorRef( CGColorRef col ) { m_cgColour.reset( col ); size_t noComp = CGColorGetNumberOfComponents( col ); - if ( noComp >=3 && noComp <= 4 ) + if ( noComp >= 1 && noComp <= 4 ) { // TODO verify whether we really are on a RGB color space + m_alpha = wxALPHA_OPAQUE; const CGFloat *components = CGColorGetComponents( col ); - m_red = (int)(components[0]*255+0.5); - m_green = (int)(components[1]*255+0.5); - m_blue = (int)(components[2]*255+0.5); - if ( noComp == 4 ) - m_alpha = (int)(components[3]*255+0.5); + if ( noComp >= 3 ) + { + m_red = (int)(components[0]*255+0.5); + m_green = (int)(components[1]*255+0.5); + m_blue = (int)(components[2]*255+0.5); + if ( noComp == 4 ) + m_alpha = (int)(components[3]*255+0.5); + } else - m_alpha = wxALPHA_OPAQUE; + { + m_red = (int)(components[0]*255+0.5); + m_green = (int)(components[0]*255+0.5); + m_blue = (int)(components[0]*255+0.5); + } } else {