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

Side by Side Diff: chrome/browser/ui/views/infobars/extension_infobar.cc

Issue 9428025: Add support for multiple icon sizes for Mac platform apps (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address review comment Created 8 years, 10 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 | Annotate | Revision Log
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 #include "chrome/browser/ui/views/infobars/extension_infobar.h" 5 #include "chrome/browser/ui/views/infobars/extension_infobar.h"
6 6
7 #include "chrome/browser/extensions/extension_context_menu_model.h" 7 #include "chrome/browser/extensions/extension_context_menu_model.h"
8 #include "chrome/browser/extensions/extension_host.h" 8 #include "chrome/browser/extensions/extension_host.h"
9 #include "chrome/browser/extensions/extension_infobar_delegate.h" 9 #include "chrome/browser/extensions/extension_infobar_delegate.h"
10 #include "chrome/browser/platform_util.h" 10 #include "chrome/browser/platform_util.h"
11 #include "chrome/browser/ui/views/frame/browser_view.h" 11 #include "chrome/browser/ui/views/frame/browser_view.h"
12 #include "chrome/common/extensions/extension.h" 12 #include "chrome/common/extensions/extension.h"
13 #include "chrome/common/extensions/extension_icon_set.h" 13 #include "chrome/common/extensions/extension_icon_set.h"
14 #include "chrome/common/extensions/extension_resource.h" 14 #include "chrome/common/extensions/extension_resource.h"
15 #include "grit/theme_resources.h" 15 #include "grit/theme_resources.h"
16 #include "ui/base/animation/slide_animation.h" 16 #include "ui/base/animation/slide_animation.h"
17 #include "ui/base/resource/resource_bundle.h" 17 #include "ui/base/resource/resource_bundle.h"
18 #include "ui/gfx/canvas_skia.h" 18 #include "ui/gfx/canvas_skia.h"
19 #include "ui/gfx/image/image.h"
19 #include "ui/views/controls/button/menu_button.h" 20 #include "ui/views/controls/button/menu_button.h"
20 #include "ui/views/controls/menu/menu_item_view.h" 21 #include "ui/views/controls/menu/menu_item_view.h"
21 #include "ui/views/widget/widget.h" 22 #include "ui/views/widget/widget.h"
22 23
23 // ExtensionInfoBarDelegate ---------------------------------------------------- 24 // ExtensionInfoBarDelegate ----------------------------------------------------
24 25
25 InfoBar* ExtensionInfoBarDelegate::CreateInfoBar(InfoBarTabHelper* owner) { 26 InfoBar* ExtensionInfoBarDelegate::CreateInfoBar(InfoBarTabHelper* owner) {
26 return new ExtensionInfoBar(browser_, owner, this); 27 return new ExtensionInfoBar(browser_, owner, this);
27 } 28 }
28 29
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 // which assumes that particular children (e.g. the close button) have already 91 // which assumes that particular children (e.g. the close button) have already
91 // been added. 92 // been added.
92 const Extension* extension = extension_host->extension(); 93 const Extension* extension = extension_host->extension();
93 int image_size = Extension::EXTENSION_ICON_BITTY; 94 int image_size = Extension::EXTENSION_ICON_BITTY;
94 ExtensionResource icon_resource = extension->GetIconResource( 95 ExtensionResource icon_resource = extension->GetIconResource(
95 image_size, ExtensionIconSet::MATCH_EXACTLY); 96 image_size, ExtensionIconSet::MATCH_EXACTLY);
96 if (!icon_resource.relative_path().empty()) { 97 if (!icon_resource.relative_path().empty()) {
97 tracker_.LoadImage(extension, icon_resource, 98 tracker_.LoadImage(extension, icon_resource,
98 gfx::Size(image_size, image_size), ImageLoadingTracker::DONT_CACHE); 99 gfx::Size(image_size, image_size), ImageLoadingTracker::DONT_CACHE);
99 } else { 100 } else {
100 OnImageLoaded(NULL, icon_resource, 0); 101 OnImageLoaded(NULL, std::string(), 0);
101 } 102 }
102 } 103 }
103 104
104 int ExtensionInfoBar::ContentMinimumWidth() const { 105 int ExtensionInfoBar::ContentMinimumWidth() const {
105 return menu_->GetPreferredSize().width() + kMenuHorizontalMargin; 106 return menu_->GetPreferredSize().width() + kMenuHorizontalMargin;
106 } 107 }
107 108
108 void ExtensionInfoBar::OnImageLoaded(SkBitmap* image, 109 void ExtensionInfoBar::OnImageLoaded(const gfx::Image* image,
109 const ExtensionResource& resource, 110 const std::string& extension_id,
110 int index) { 111 int index) {
111 if (!GetDelegate()) 112 if (!GetDelegate())
112 return; // The delegate can go away while we asynchronously load images. 113 return; // The delegate can go away while we asynchronously load images.
113 114
114 SkBitmap* icon = image; 115 const SkBitmap* icon = NULL;
115 // Fall back on the default extension icon on failure. 116 // Fall back on the default extension icon on failure.
116 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 117 ResourceBundle& rb = ResourceBundle::GetSharedInstance();
117 if (!image || image->empty()) 118 if (!image || image->IsEmpty())
118 icon = rb.GetBitmapNamed(IDR_EXTENSIONS_SECTION); 119 icon = rb.GetBitmapNamed(IDR_EXTENSIONS_SECTION);
120 else
121 icon = image->AsSkBitmap();
119 122
120 SkBitmap* drop_image = rb.GetBitmapNamed(IDR_APP_DROPARROW); 123 SkBitmap* drop_image = rb.GetBitmapNamed(IDR_APP_DROPARROW);
121 124
122 int image_size = Extension::EXTENSION_ICON_BITTY; 125 int image_size = Extension::EXTENSION_ICON_BITTY;
123 // The margin between the extension icon and the drop-down arrow bitmap. 126 // The margin between the extension icon and the drop-down arrow bitmap.
124 static const int kDropArrowLeftMargin = 3; 127 static const int kDropArrowLeftMargin = 3;
125 scoped_ptr<gfx::CanvasSkia> canvas(new gfx::CanvasSkia( 128 scoped_ptr<gfx::CanvasSkia> canvas(new gfx::CanvasSkia(
126 gfx::Size(image_size + kDropArrowLeftMargin + drop_image->width(), 129 gfx::Size(image_size + kDropArrowLeftMargin + drop_image->width(),
127 image_size), 130 image_size),
128 false)); 131 false));
(...skipping 20 matching lines...) Expand all
149 152
150 scoped_refptr<ExtensionContextMenuModel> options_menu_contents = 153 scoped_refptr<ExtensionContextMenuModel> options_menu_contents =
151 new ExtensionContextMenuModel(extension, browser_, NULL); 154 new ExtensionContextMenuModel(extension, browser_, NULL);
152 DCHECK_EQ(source, menu_); 155 DCHECK_EQ(source, menu_);
153 RunMenuAt(options_menu_contents.get(), menu_, views::MenuItemView::TOPLEFT); 156 RunMenuAt(options_menu_contents.get(), menu_, views::MenuItemView::TOPLEFT);
154 } 157 }
155 158
156 ExtensionInfoBarDelegate* ExtensionInfoBar::GetDelegate() { 159 ExtensionInfoBarDelegate* ExtensionInfoBar::GetDelegate() {
157 return delegate_ ? delegate_->AsExtensionInfoBarDelegate() : NULL; 160 return delegate_ ? delegate_->AsExtensionInfoBarDelegate() : NULL;
158 } 161 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698