X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9ef6890f0bbda544c510be1bd81c990a480a3ef3..f7d2128f3c89b2d00fbac0d8c9798409ae23b408:/src/mac/carbon/colour.cpp diff --git a/src/mac/carbon/colour.cpp b/src/mac/carbon/colour.cpp index 4d91726650..c8b4d91946 100644 --- a/src/mac/carbon/colour.cpp +++ b/src/mac/carbon/colour.cpp @@ -70,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 ); @@ -89,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 ); @@ -103,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 {