X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8f884a0dccd6b642f35c441ac9bfc87a6d5b4d35..7f65743f005572f1de2754ba8c5e7cf1eed1847e:/src/mac/carbon/colour.cpp diff --git a/src/mac/carbon/colour.cpp b/src/mac/carbon/colour.cpp index 137ff6c36d..c8b4d91946 100644 --- a/src/mac/carbon/colour.cpp +++ b/src/mac/carbon/colour.cpp @@ -38,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); @@ -54,6 +50,16 @@ wxColour& wxColour::operator=(CGColorRef col) return *this; } +wxColour& wxColour::operator=(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; + return *this; +} + void wxColour::InitRGBA (ChannelType r, ChannelType g, ChannelType b, ChannelType a) { m_red = r; @@ -64,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 ); @@ -83,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 ); @@ -97,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 {