Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: ui/native_theme/native_theme_mac.mm

Issue 2382443007: Clean up NativeTheme (particularly CommonTheme). (Closed)
Patch Set: tdandersonreview Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/native_theme/native_theme_mac.h" 5 #include "ui/native_theme/native_theme_mac.h"
6 6
7 #import <Cocoa/Cocoa.h> 7 #import <Cocoa/Cocoa.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include "base/mac/mac_util.h" 10 #include "base/mac/mac_util.h"
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 return color; 125 return color;
126 } 126 }
127 127
128 SkColor NativeThemeMac::GetSystemColor(ColorId color_id) const { 128 SkColor NativeThemeMac::GetSystemColor(ColorId color_id) const {
129 // Even with --secondary-ui-md, menus use the platform colors and styling, and 129 // Even with --secondary-ui-md, menus use the platform colors and styling, and
130 // Mac has a couple of specific color overrides, documented below. 130 // Mac has a couple of specific color overrides, documented below.
131 switch (color_id) { 131 switch (color_id) {
132 case kColorId_EnabledMenuItemForegroundColor: 132 case kColorId_EnabledMenuItemForegroundColor:
133 return NSSystemColorToSkColor([NSColor controlTextColor]); 133 return NSSystemColorToSkColor([NSColor controlTextColor]);
134 case kColorId_DisabledMenuItemForegroundColor: 134 case kColorId_DisabledMenuItemForegroundColor:
135 case kColorId_DisabledEmphasizedMenuItemForegroundColor:
136 return NSSystemColorToSkColor([NSColor disabledControlTextColor]); 135 return NSSystemColorToSkColor([NSColor disabledControlTextColor]);
137 case kColorId_SelectedMenuItemForegroundColor: 136 case kColorId_SelectedMenuItemForegroundColor:
138 return NSSystemColorToSkColor([NSColor selectedMenuItemTextColor]); 137 return NSSystemColorToSkColor([NSColor selectedMenuItemTextColor]);
139 case kColorId_FocusedMenuItemBackgroundColor: 138 case kColorId_FocusedMenuItemBackgroundColor:
140 case kColorId_HoverMenuItemBackgroundColor:
141 return NSSystemColorToSkColor([NSColor selectedMenuItemColor]); 139 return NSSystemColorToSkColor([NSColor selectedMenuItemColor]);
142 case kColorId_MenuBackgroundColor: 140 case kColorId_MenuBackgroundColor:
143 return kMenuPopupBackgroundColor; 141 return kMenuPopupBackgroundColor;
144 case kColorId_MenuSeparatorColor: 142 case kColorId_MenuSeparatorColor:
145 return base::mac::IsOS10_9() ? kMenuSeparatorColorMavericks 143 return base::mac::IsOS10_9() ? kMenuSeparatorColorMavericks
146 : kMenuSeparatorColor; 144 : kMenuSeparatorColor;
147 case kColorId_MenuBorderColor: 145 case kColorId_MenuBorderColor:
148 return kMenuBorderColor; 146 return kMenuBorderColor;
149 147
150 // Mac has a different "pressed button" styling because it doesn't use 148 // Mac has a different "pressed button" styling because it doesn't use
(...skipping 25 matching lines...) Expand all
176 return SK_ColorWHITE; 174 return SK_ColorWHITE;
177 175
178 case kColorId_FocusedBorderColor: 176 case kColorId_FocusedBorderColor:
179 return NSSystemColorToSkColor([NSColor keyboardFocusIndicatorColor]); 177 return NSSystemColorToSkColor([NSColor keyboardFocusIndicatorColor]);
180 case kColorId_FocusedMenuButtonBorderColor: 178 case kColorId_FocusedMenuButtonBorderColor:
181 return NSSystemColorToSkColor([NSColor keyboardFocusIndicatorColor]); 179 return NSSystemColorToSkColor([NSColor keyboardFocusIndicatorColor]);
182 case kColorId_UnfocusedBorderColor: 180 case kColorId_UnfocusedBorderColor:
183 return NSSystemColorToSkColor([NSColor controlColor]); 181 return NSSystemColorToSkColor([NSColor controlColor]);
184 182
185 // Buttons and labels. 183 // Buttons and labels.
186 case kColorId_ButtonBackgroundColor:
187 case kColorId_ButtonHoverBackgroundColor:
188 case kColorId_HoverMenuButtonBorderColor: 184 case kColorId_HoverMenuButtonBorderColor:
189 case kColorId_LabelBackgroundColor:
190 return NSSystemColorToSkColor([NSColor controlBackgroundColor]); 185 return NSSystemColorToSkColor([NSColor controlBackgroundColor]);
191 case kColorId_ButtonEnabledColor: 186 case kColorId_ButtonEnabledColor:
192 case kColorId_EnabledMenuButtonBorderColor: 187 case kColorId_EnabledMenuButtonBorderColor:
193 case kColorId_LabelEnabledColor: 188 case kColorId_LabelEnabledColor:
194 case kColorId_ProminentButtonColor: 189 case kColorId_ProminentButtonColor:
195 return NSSystemColorToSkColor([NSColor controlTextColor]); 190 return NSSystemColorToSkColor([NSColor controlTextColor]);
196 case kColorId_ButtonDisabledColor: 191 case kColorId_ButtonDisabledColor:
197 case kColorId_LabelDisabledColor: 192 case kColorId_LabelDisabledColor:
198 return NSSystemColorToSkColor([NSColor disabledControlTextColor]); 193 return NSSystemColorToSkColor([NSColor disabledControlTextColor]);
199 case kColorId_ButtonHighlightColor:
200 // Although the NSColor documentation names "selectedControlTextColor" as
201 // the color for a "text in a .. control being clicked or dragged", it
202 // remains black, and text on Yosemite-style pressed buttons is white.
203 return SK_ColorWHITE;
204 case kColorId_ButtonHoverColor: 194 case kColorId_ButtonHoverColor:
205 return NSSystemColorToSkColor([NSColor selectedControlTextColor]); 195 return NSSystemColorToSkColor([NSColor selectedControlTextColor]);
206 196
207 // Link. 197 // Link.
208 case kColorId_LinkDisabled: 198 case kColorId_LinkDisabled:
209 return SK_ColorBLACK; 199 return SK_ColorBLACK;
210 case kColorId_LinkEnabled: 200 case kColorId_LinkEnabled:
211 return SK_ColorBLUE; 201 return SK_ColorBLUE;
212 case kColorId_LinkPressed: 202 case kColorId_LinkPressed:
213 return SK_ColorRED; 203 return SK_ColorRED;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 switch (state) { 267 switch (state) {
278 case NativeTheme::kNormal: 268 case NativeTheme::kNormal:
279 case NativeTheme::kDisabled: 269 case NativeTheme::kDisabled:
280 // Draw nothing over the regular background. 270 // Draw nothing over the regular background.
281 break; 271 break;
282 case NativeTheme::kHovered: 272 case NativeTheme::kHovered:
283 // TODO(tapted): Draw a gradient, and use [NSColor currentControlTint] to 273 // TODO(tapted): Draw a gradient, and use [NSColor currentControlTint] to
284 // pick colors. The System color "selectedMenuItemColor" is actually still 274 // pick colors. The System color "selectedMenuItemColor" is actually still
285 // blue for Graphite. And while "keyboardFocusIndicatorColor" does change, 275 // blue for Graphite. And while "keyboardFocusIndicatorColor" does change,
286 // and is a good shade of gray, it's not blue enough for the Blue theme. 276 // and is a good shade of gray, it's not blue enough for the Blue theme.
287 paint.setColor(GetSystemColor(kColorId_HoverMenuItemBackgroundColor)); 277 paint.setColor(GetSystemColor(kColorId_FocusedMenuItemBackgroundColor));
288 canvas->drawRect(gfx::RectToSkRect(rect), paint); 278 canvas->drawRect(gfx::RectToSkRect(rect), paint);
289 break; 279 break;
290 default: 280 default:
291 NOTREACHED(); 281 NOTREACHED();
292 break; 282 break;
293 } 283 }
294 } 284 }
295 285
296 // static 286 // static
297 sk_sp<SkShader> NativeThemeMac::GetButtonBackgroundShader( 287 sk_sp<SkShader> NativeThemeMac::GetButtonBackgroundShader(
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 canvas->drawDRRect(outer_shape, shape, paint); 426 canvas->drawDRRect(outer_shape, shape, paint);
437 } 427 }
438 428
439 NativeThemeMac::NativeThemeMac() { 429 NativeThemeMac::NativeThemeMac() {
440 } 430 }
441 431
442 NativeThemeMac::~NativeThemeMac() { 432 NativeThemeMac::~NativeThemeMac() {
443 } 433 }
444 434
445 } // namespace ui 435 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698