From 92b400b9d8043e42aebaf50835669a395efb1a0a Mon Sep 17 00:00:00 2001 From: dmitry Date: Fri, 23 Apr 2010 13:56:40 +0000 Subject: [PATCH] carbon: implemented theme tree item drawing. changed highlight colors git-svn-id: trunk@24852 - --- lcl/interfaces/carbon/carbonthemes.pas | 44 ++++++++++++++++---------- lcl/interfaces/carbon/carbonwinapi.inc | 7 ++-- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/lcl/interfaces/carbon/carbonthemes.pas b/lcl/interfaces/carbon/carbonthemes.pas index 3a18e01f5c..c745e10e1b 100644 --- a/lcl/interfaces/carbon/carbonthemes.pas +++ b/lcl/interfaces/carbon/carbonthemes.pas @@ -19,7 +19,7 @@ uses // lcl LCLType, LCLProc, LCLIntf, Graphics, Themes, TmSchema, // widgetset - CarbonProc, CarbonCanvas; + CarbonProc, CarbonCanvas, CarbonGDIObjects; type { TCarbonThemeServices } @@ -284,26 +284,36 @@ function TCarbonThemeServices.DrawTreeviewElement(DC: TCarbonDeviceContext; var ButtonDrawInfo: HIThemeButtonDrawInfo; LabelRect: HIRect; + b: TCarbonBrush; begin - if Details.Part in [TVP_GLYPH, TVP_HOTGLYPH] then - begin - ButtonDrawInfo.version := 0; - ButtonDrawInfo.State := GetDrawState(Details); - ButtonDrawInfo.kind := kThemeDisclosureTriangle; - if Details.State = GLPS_CLOSED then - ButtonDrawInfo.value := kThemeDisclosureRight - else - ButtonDrawInfo.value := kThemeDisclosureDown; + case Details.Part of + TVP_TREEITEM: + begin + b:=TCarbonBrush.Create(False); + b.SetColor( ColorToRGB(clHighlight), True); + DC.FillRect(R, b); + b.Free; + end; + TVP_GLYPH, TVP_HOTGLYPH: + begin + ButtonDrawInfo.version := 0; + ButtonDrawInfo.State := GetDrawState(Details); + ButtonDrawInfo.kind := kThemeDisclosureTriangle; + if Details.State = GLPS_CLOSED then + ButtonDrawInfo.value := kThemeDisclosureRight + else + ButtonDrawInfo.value := kThemeDisclosureDown; - ButtonDrawInfo.adornment := kThemeAdornmentNone; - LabelRect := RectToCGRect(R); + ButtonDrawInfo.adornment := kThemeAdornmentNone; + LabelRect := RectToCGRect(R); - OSError( - HIThemeDrawButton(LabelRect, ButtonDrawInfo, DC.CGContext, - kHIThemeOrientationNormal, @LabelRect), - Self, 'DrawTreeviewElement', 'HIThemeDrawButton'); + OSError( + HIThemeDrawButton(LabelRect, ButtonDrawInfo, DC.CGContext, + kHIThemeOrientationNormal, @LabelRect), + Self, 'DrawTreeviewElement', 'HIThemeDrawButton'); - Result := CGRectToRect(LabelRect); + Result := CGRectToRect(LabelRect); + end; end; end; diff --git a/lcl/interfaces/carbon/carbonwinapi.inc b/lcl/interfaces/carbon/carbonwinapi.inc index ecf19e6a69..27e5698a9c 100644 --- a/lcl/interfaces/carbon/carbonwinapi.inc +++ b/lcl/interfaces/carbon/carbonwinapi.inc @@ -1908,9 +1908,12 @@ begin COLOR_APPWORKSPACE: R := GetThemeBrushAsColor(kThemeBrushUtilityWindowBackgroundActive, Depth, True, C); COLOR_HIGHLIGHT: - R := GetThemeBrushAsColor(kThemeBrushPrimaryHighlightColor, Depth, True, C); + // kThemeBrushAlternatePrimaryHighlightColor is used as highlight in Finder + R := GetThemeBrushAsColor(kThemeBrushAlternatePrimaryHighlightColor, Depth, True, C); + //R := GetThemeBrushAsColor(kThemeBrushPrimaryHighlightColor, Depth, True, C); COLOR_HIGHLIGHTTEXT: - R := GetThemeTextColor(kThemeTextColorPushButtonPressed, Depth, True, C); + R := GetThemeTextColor(kThemeTextColorWhite, Depth, True, C); + //R := GetThemeTextColor(kThemeTextColorPushButtonPressed, Depth, True, C); COLOR_SCROLLBAR, COLOR_BTNFACE: R := GetThemeBrushAsColor(kThemeBrushButtonFaceActive, Depth, True, C); COLOR_BTNSHADOW: