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

Side by Side Diff: chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.mm

Issue 2614333002: Revert of Create vector icon resource directory specific to Chrome. (Closed)
Patch Set: Created 3 years, 11 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #import "chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.h" 5 #import "chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.h"
6 6
7 #include "base/mac/foundation_util.h" 7 #include "base/mac/foundation_util.h"
8 #include "base/mac/sdk_forward_declarations.h" 8 #include "base/mac/sdk_forward_declarations.h"
9 #include "chrome/app/vector_icons/vector_icons.h"
10 #import "chrome/browser/ui/cocoa/image_button_cell.h" 9 #import "chrome/browser/ui/cocoa/image_button_cell.h"
11 #import "chrome/browser/ui/cocoa/l10n_util.h" 10 #import "chrome/browser/ui/cocoa/l10n_util.h"
12 #import "chrome/browser/ui/cocoa/view_id_util.h" 11 #import "chrome/browser/ui/cocoa/view_id_util.h"
13 #include "skia/ext/skia_utils_mac.h" 12 #include "skia/ext/skia_utils_mac.h"
14 #import "ui/base/cocoa/nsview_additions.h" 13 #import "ui/base/cocoa/nsview_additions.h"
15 #include "ui/base/material_design/material_design_controller.h" 14 #include "ui/base/material_design/material_design_controller.h"
16 #include "ui/base/theme_provider.h" 15 #include "ui/base/theme_provider.h"
17 #include "ui/gfx/image/image_skia_util_mac.h" 16 #include "ui/gfx/image/image_skia_util_mac.h"
18 #include "ui/gfx/paint_vector_icon.h" 17 #include "ui/gfx/paint_vector_icon.h"
19 18
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 return handleMiddleClick_ && [theEvent buttonNumber] == 2; 197 return handleMiddleClick_ && [theEvent buttonNumber] == 2;
199 } 198 }
200 199
201 - (void)drawFocusRingMask { 200 - (void)drawFocusRingMask {
202 // Match the hover image's bezel. 201 // Match the hover image's bezel.
203 [[NSBezierPath bezierPathWithRoundedRect:NSInsetRect([self bounds], 2, 2) 202 [[NSBezierPath bezierPathWithRoundedRect:NSInsetRect([self bounds], 2, 2)
204 xRadius:2 203 xRadius:2
205 yRadius:2] fill]; 204 yRadius:2] fill];
206 } 205 }
207 206
208 - (const gfx::VectorIcon*)vectorIcon { 207 - (gfx::VectorIconId)vectorIconId {
209 BOOL isRTL = cocoa_l10n_util::ShouldDoExperimentalRTLLayout(); 208 BOOL isRTL = cocoa_l10n_util::ShouldDoExperimentalRTLLayout();
210 switch ([self viewID]) { 209 switch ([self viewID]) {
211 case VIEW_ID_BACK_BUTTON: 210 case VIEW_ID_BACK_BUTTON:
212 return isRTL ? &kNavigateForwardIcon : &kNavigateBackIcon; 211 return isRTL ? gfx::VectorIconId::NAVIGATE_FORWARD
212 : gfx::VectorIconId::NAVIGATE_BACK;
213 case VIEW_ID_FORWARD_BUTTON: 213 case VIEW_ID_FORWARD_BUTTON:
214 return isRTL ? &kNavigateBackIcon : &kNavigateForwardIcon; 214 return isRTL ? gfx::VectorIconId::NAVIGATE_BACK
215 : gfx::VectorIconId::NAVIGATE_FORWARD;
215 case VIEW_ID_HOME_BUTTON: 216 case VIEW_ID_HOME_BUTTON:
216 return &kNavigateHomeIcon; 217 return gfx::VectorIconId::NAVIGATE_HOME;
217 case VIEW_ID_APP_MENU: 218 case VIEW_ID_APP_MENU:
218 return &kBrowserToolsIcon; 219 return gfx::VectorIconId::BROWSER_TOOLS;
219 default: 220 default:
220 break; 221 break;
221 } 222 }
222 223
223 return nullptr; 224 return gfx::VectorIconId::VECTOR_ICON_NONE;
224 } 225 }
225 226
226 - (SkColor)vectorIconColor:(BOOL)themeIsDark { 227 - (SkColor)vectorIconColor:(BOOL)themeIsDark {
227 return themeIsDark ? SK_ColorWHITE : SkColorSetRGB(0x5A, 0x5A, 0x5A); 228 return themeIsDark ? SK_ColorWHITE : SkColorSetRGB(0x5A, 0x5A, 0x5A);
228 } 229 }
229 230
230 - (NSImage*)browserToolsIconForFillColor:(SkColor)fillColor { 231 - (NSImage*)browserToolsIconForFillColor:(SkColor)fillColor {
231 // Create a |BrowserToolsImageRep| to draw the browser tools icon using 232 // Create a |BrowserToolsImageRep| to draw the browser tools icon using
232 // the provided fill color. 233 // the provided fill color.
233 base::scoped_nsobject<BrowserToolsImageRep> imageRep( 234 base::scoped_nsobject<BrowserToolsImageRep> imageRep(
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 // ivar. 279 // ivar.
279 image_.reset([anImage retain]); 280 image_.reset([anImage retain]);
280 [self resetButtonStateImages]; 281 [self resetButtonStateImages];
281 } 282 }
282 283
283 - (void)resetButtonStateImages { 284 - (void)resetButtonStateImages {
284 NSImage* normalIcon = nil; 285 NSImage* normalIcon = nil;
285 NSImage* disabledIcon = nil; 286 NSImage* disabledIcon = nil;
286 BOOL isDarkTheme = NO; 287 BOOL isDarkTheme = NO;
287 288
288 const gfx::VectorIcon* icon = [self vectorIcon]; 289 gfx::VectorIconId iconId = [self vectorIconId];
289 if (!icon) { 290 if (iconId == gfx::VectorIconId::VECTOR_ICON_NONE) {
290 // If the button does not have a vector icon (e.g. it's an extension 291 // If the button does not have a vector icon id (e.g. it's an extension
291 // button), use its image. The hover, etc. images will be created using 292 // button), use its image. The hover, etc. images will be created using
292 // imageForIcon:withBackgroundStyle: so do the same for the default image. 293 // imageForIcon:withBackgroundStyle: so do the same for the default image.
293 // If we don't do this, the icon may not appear in the same place as in the 294 // If we don't do this, the icon may not appear in the same place as in the
294 // other states, causing the icon to appear to shift as you mouse over the 295 // other states, causing the icon to appear to shift as you mouse over the
295 // button. 296 // button.
296 NSImage* defaultImage = 297 NSImage* defaultImage =
297 [self imageForIcon:[self image] 298 [self imageForIcon:[self image]
298 withBackgroundStyle:ToolbarButtonImageBackgroundStyle::DEFAULT]; 299 withBackgroundStyle:ToolbarButtonImageBackgroundStyle::DEFAULT];
299 normalIcon = disabledIcon = defaultImage; 300 normalIcon = disabledIcon = defaultImage;
300 } else { 301 } else {
301 // Compute the normal and disabled vector icon colors. 302 // Compute the normal and disabled vector icon colors.
302 isDarkTheme = [[self window] hasDarkTheme]; 303 isDarkTheme = [[self window] hasDarkTheme];
303 const SkColor vectorIconColor = [self vectorIconColor:isDarkTheme]; 304 const SkColor vectorIconColor = [self vectorIconColor:isDarkTheme];
304 CGFloat normalAlpha = isDarkTheme ? 0xCC : 0xFF; 305 CGFloat normalAlpha = isDarkTheme ? 0xCC : 0xFF;
305 const SkColor normalColor = SkColorSetA(vectorIconColor, normalAlpha); 306 const SkColor normalColor = SkColorSetA(vectorIconColor, normalAlpha);
306 const SkColor disabledColor = SkColorSetA(vectorIconColor, 0x33); 307 const SkColor disabledColor = SkColorSetA(vectorIconColor, 0x33);
307 308
308 // Create the normal and disabled state icons. These icons are always the 309 // Create the normal and disabled state icons. These icons are always the
309 // same shape but use a different color. 310 // same shape but use a different color.
310 if (icon == &kBrowserToolsIcon) { 311 if (iconId == gfx::VectorIconId::BROWSER_TOOLS) {
311 normalIcon = [self browserToolsIconForFillColor:normalColor]; 312 normalIcon = [self browserToolsIconForFillColor:normalColor];
312 disabledIcon = [self browserToolsIconForFillColor:disabledColor]; 313 disabledIcon = [self browserToolsIconForFillColor:disabledColor];
313 } else { 314 } else {
314 normalIcon = NSImageFromImageSkia( 315 normalIcon = NSImageFromImageSkia(
315 gfx::CreateVectorIcon(*icon, 316 gfx::CreateVectorIcon(iconId,
316 kMDButtonIconSize.width, 317 kMDButtonIconSize.width,
317 normalColor)); 318 normalColor));
318 319
319 // The home button has no icon for its disabled state. 320 // The home button has no icon for its disabled state.
320 if (icon != &kNavigateReloadIcon) { 321 if (iconId != gfx::VectorIconId::NAVIGATE_RELOAD) {
321 disabledIcon = NSImageFromImageSkia( 322 disabledIcon = NSImageFromImageSkia(
322 gfx::CreateVectorIcon(*icon, 323 gfx::CreateVectorIcon(iconId,
323 kMDButtonIconSize.width, 324 kMDButtonIconSize.width,
324 disabledColor)); 325 disabledColor));
325 } 326 }
326 } 327 }
327 } 328 }
328 329
329 ImageButtonCell* theCell = base::mac::ObjCCast<ImageButtonCell>([self cell]); 330 ImageButtonCell* theCell = base::mac::ObjCCast<ImageButtonCell>([self cell]);
330 // Set the image for the default state, which is just the icon. 331 // Set the image for the default state, which is just the icon.
331 [theCell setImage:normalIcon forButtonState:image_button_cell::kDefaultState]; 332 [theCell setImage:normalIcon forButtonState:image_button_cell::kDefaultState];
332 333
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 378
378 - (void)windowDidChangeTheme { 379 - (void)windowDidChangeTheme {
379 // Update the hover and pressed image backgrounds to match the current theme. 380 // Update the hover and pressed image backgrounds to match the current theme.
380 [self resetButtonStateImages]; 381 [self resetButtonStateImages];
381 } 382 }
382 383
383 - (void)windowDidChangeActive { 384 - (void)windowDidChangeActive {
384 } 385 }
385 386
386 @end 387 @end
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.h ('k') | chrome/browser/ui/global_error/global_error.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698