From: Vadim Zeitlin Date: Sat, 10 Mar 2007 15:48:56 +0000 (+0000) Subject: added wxColour(RGBColor) ctor and use it insteaf of constructing wxColour from RGBCol... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/055de35012da711c0ebdf83e53d11f221af731fc added wxColour(RGBColor) ctor and use it insteaf of constructing wxColour from RGBColor manually in several places (replaces patch 1662064) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/mac/carbon/colour.h b/include/wx/mac/carbon/colour.h index 9acf4d42b9..b024afe218 100644 --- a/include/wx/mac/carbon/colour.h +++ b/include/wx/mac/carbon/colour.h @@ -15,6 +15,8 @@ #include "wx/object.h" #include "wx/string.h" +struct RGBColor; + // Colour class WXDLLEXPORT wxColour: public wxColourBase { @@ -51,6 +53,10 @@ public: const WXCOLORREF& GetPixel() const { return m_pixel; }; + // Mac-specific ctor and assignment operator from the native colour + wxColour(const RGBColor& col); + wxColour& operator=(const RGBColor& col); + protected : // Helper function diff --git a/src/mac/carbon/brush.cpp b/src/mac/carbon/brush.cpp index 95bb600893..74e83ebd77 100644 --- a/src/mac/carbon/brush.cpp +++ b/src/mac/carbon/brush.cpp @@ -185,7 +185,7 @@ void wxBrush::MacSetTheme(ThemeBrush macThemeBrush) RGBColor color ; GetThemeBrushAsColor( macThemeBrush , 32, true, &color ); - M_BRUSHDATA->m_colour.Set( color.red >> 8 , color.green >> 8 , color.blue >> 8 ); + M_BRUSHDATA->m_colour = color; RealizeResource(); } diff --git a/src/mac/carbon/colordlg.cpp b/src/mac/carbon/colordlg.cpp index 113aa958a9..6948802acd 100644 --- a/src/mac/carbon/colordlg.cpp +++ b/src/mac/carbon/colordlg.cpp @@ -68,7 +68,7 @@ int wxColourDialog::ShowModal() currentColor.red = info.theColor.color.rgb.red ; currentColor.green = info.theColor.color.rgb.green ; currentColor.blue = info.theColor.color.rgb.blue ; - m_colourData.m_dataColour.FromRGBColor((WXCOLORREF*) ¤tColor); + m_colourData.m_dataColour = currentColor; return wxID_OK; } diff --git a/src/mac/carbon/colour.cpp b/src/mac/carbon/colour.cpp index 6a3562c3d4..24f6accd20 100644 --- a/src/mac/carbon/colour.cpp +++ b/src/mac/carbon/colour.cpp @@ -21,7 +21,11 @@ IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject) -static void wxComposeRGBColor( WXCOLORREF* color , int red, int blue, int green ); +wxColour::wxColour(const RGBColor& col) +{ + FromRGBColor((WXCOLORREF *)&col); +} + static void wxComposeRGBColor( WXCOLORREF* color , int red, int blue, int green ) { RGBColor* col = (RGBColor*) color; @@ -64,6 +68,11 @@ void wxColour::FromRGBColor( WXCOLORREF* color ) m_green = col->green >> 8; } +wxColour& wxColour::operator=(const RGBColor& col) +{ + FromRGBColor((WXCOLORREF *)&col); +} + bool wxColour::IsOk() const { return m_isInit; diff --git a/src/mac/carbon/dc.cpp b/src/mac/carbon/dc.cpp index 9bc9f204b5..6ead8a9bbc 100644 --- a/src/mac/carbon/dc.cpp +++ b/src/mac/carbon/dc.cpp @@ -746,7 +746,7 @@ bool wxDC::DoGetPixel( wxCoord x, wxCoord y, wxColour *col ) const GetCPixel( XLOG2DEVMAC(x), YLOG2DEVMAC(y), &colour ); // convert from Mac colour to wx - col->Set( colour.red >> 8, colour.green >> 8, colour.blue >> 8); + *col = colour; return true ; } diff --git a/src/mac/carbon/dccg.cpp b/src/mac/carbon/dccg.cpp index eed1bb4f8b..4cd27e7247 100755 --- a/src/mac/carbon/dccg.cpp +++ b/src/mac/carbon/dccg.cpp @@ -1593,7 +1593,7 @@ bool wxDC::DoGetPixel( wxCoord x, wxCoord y, wxColour *col ) const YLOG2DEVMAC(y) + m_macLocalOriginInPort.y - m_macLocalOrigin.y, &colour ); #endif // convert from Mac colour to wx - col->Set( colour.red >> 8, colour.green >> 8, colour.blue >> 8 ); + *col = colour; return true ; } diff --git a/src/mac/carbon/fontdlg.cpp b/src/mac/carbon/fontdlg.cpp index 4cde3f25bb..e18c299903 100644 --- a/src/mac/carbon/fontdlg.cpp +++ b/src/mac/carbon/fontdlg.cpp @@ -125,7 +125,9 @@ pascal OSStatus wxMacCarbonFontPanelHandler(EventHandlerCallRef nextHandler, Eve RGBColor fontColor ; if ( cEvent.GetParameter(kEventParamFontColor, &fontColor) == noErr ) - fontdata.m_fontColour.FromRGBColor((WXCOLORREF*) &fontColor); + { + fontdata.m_fontColour = fontColor; + } else { CFDictionaryRef dict ; @@ -150,7 +152,7 @@ pascal OSStatus wxMacCarbonFontPanelHandler(EventHandlerCallRef nextHandler, Eve { if ( tagPtr[i] == kATSUColorTag && sizePtr[i] == sizeof(RGBColor)) { - fontdata.m_fontColour.FromRGBColor((WXCOLORREF*) valuesPtr); + fontdata.m_fontColour.FromRGBColor(*(RGBColor *)valuesPtr); break ; } bytePtr = (UInt32*)( (UInt8*)bytePtr + sizePtr[i]); diff --git a/src/mac/carbon/renderer.cpp b/src/mac/carbon/renderer.cpp index 849f287b02..abac02650a 100644 --- a/src/mac/carbon/renderer.cpp +++ b/src/mac/carbon/renderer.cpp @@ -370,16 +370,16 @@ wxRendererMac::DrawItemSelectionRect(wxWindow *win, const wxRect& rect, int flags ) { + if ( !(flags & wxCONTROL_SELECTED) ) + return; + RGBColor selColor; - if (flags & wxCONTROL_SELECTED) - { - if (flags & wxCONTROL_FOCUSED) - GetThemeBrushAsColor(kThemeBrushAlternatePrimaryHighlightColor, 32, true, &selColor); - else - GetThemeBrushAsColor(kThemeBrushSecondaryHighlightColor, 32, true, &selColor); - } + GetThemeBrushAsColor(flags & wxCONTROL_FOCUSED + ? kThemeBrushAlternatePrimaryHighlightColor + : kThemeBrushSecondaryHighlightColor, + 32, true, &selColor); - wxBrush selBrush = wxBrush( wxColour( selColor.red, selColor.green, selColor.blue ), wxSOLID ); + wxBrush selBrush(selColor); dc.SetPen( *wxTRANSPARENT_PEN ); dc.SetBrush( selBrush ); diff --git a/src/mac/carbon/settings.cpp b/src/mac/carbon/settings.cpp index 4df74a6dd8..81cbcc4b94 100644 --- a/src/mac/carbon/settings.cpp +++ b/src/mac/carbon/settings.cpp @@ -88,7 +88,7 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index) #endif GetThemeBrushAsColor( colorBrushID, 32, true, &macRGB ); - resultColor = wxColor( macRGB.red >> 8, macRGB.green >> 8, macRGB.blue >> 8 ); + resultColor = wxColor( macRGB ); break ; case wxSYS_COLOUR_BTNHIGHLIGHT: