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

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

Issue 10843014: Generalize ExtensionIconSet to store icon paths for custom size sets (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 4 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_constants.h"
13 #include "chrome/common/extensions/extension_icon_set.h" 14 #include "chrome/common/extensions/extension_icon_set.h"
14 #include "chrome/common/extensions/extension_resource.h" 15 #include "chrome/common/extensions/extension_resource.h"
15 #include "grit/theme_resources.h" 16 #include "grit/theme_resources.h"
16 #include "ui/base/animation/slide_animation.h" 17 #include "ui/base/animation/slide_animation.h"
17 #include "ui/base/resource/resource_bundle.h" 18 #include "ui/base/resource/resource_bundle.h"
18 #include "ui/gfx/canvas.h" 19 #include "ui/gfx/canvas.h"
19 #include "ui/gfx/image/canvas_image_source.h" 20 #include "ui/gfx/image/canvas_image_source.h"
20 #include "ui/gfx/image/image.h" 21 #include "ui/gfx/image/image.h"
21 #include "ui/views/controls/button/menu_button.h" 22 #include "ui/views/controls/button/menu_button.h"
22 #include "ui/views/controls/menu/menu_item_view.h" 23 #include "ui/views/controls/menu/menu_item_view.h"
(...skipping 17 matching lines...) Expand all
40 : gfx::CanvasImageSource(ComputeSize(drop_image), false), 41 : gfx::CanvasImageSource(ComputeSize(drop_image), false),
41 icon_(icon), 42 icon_(icon),
42 drop_image_(drop_image) { 43 drop_image_(drop_image) {
43 } 44 }
44 45
45 virtual ~MenuImageSource() { 46 virtual ~MenuImageSource() {
46 } 47 }
47 48
48 // Overridden from gfx::CanvasImageSource 49 // Overridden from gfx::CanvasImageSource
49 void Draw(gfx::Canvas* canvas) OVERRIDE { 50 void Draw(gfx::Canvas* canvas) OVERRIDE {
50 int image_size = ExtensionIconSet::EXTENSION_ICON_BITTY; 51 int image_size = extension_misc::EXTENSION_ICON_BITTY;
51 canvas->DrawImageInt(icon_, 0, 0, icon_.width(), icon_.height(), 0, 0, 52 canvas->DrawImageInt(icon_, 0, 0, icon_.width(), icon_.height(), 0, 0,
52 image_size, image_size, false); 53 image_size, image_size, false);
53 canvas->DrawImageInt(drop_image_, image_size + kDropArrowLeftMargin, 54 canvas->DrawImageInt(drop_image_, image_size + kDropArrowLeftMargin,
54 image_size / 2); 55 image_size / 2);
55 } 56 }
56 57
57 private: 58 private:
58 gfx::Size ComputeSize(const gfx::ImageSkia& drop_image) const { 59 gfx::Size ComputeSize(const gfx::ImageSkia& drop_image) const {
59 int image_size = ExtensionIconSet::EXTENSION_ICON_BITTY; 60 int image_size = extension_misc::EXTENSION_ICON_BITTY;
60 return gfx::Size(image_size + kDropArrowLeftMargin + drop_image.width(), 61 return gfx::Size(image_size + kDropArrowLeftMargin + drop_image.width(),
61 image_size); 62 image_size);
62 } 63 }
63 64
64 // The margin between the extension icon and the drop-down arrow image. 65 // The margin between the extension icon and the drop-down arrow image.
65 static const int kDropArrowLeftMargin = 3; 66 static const int kDropArrowLeftMargin = 3;
66 67
67 const gfx::ImageSkia icon_; 68 const gfx::ImageSkia icon_;
68 const gfx::ImageSkia drop_image_; 69 const gfx::ImageSkia drop_image_;
69 70
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 AddChildView(extension_host->view()); 123 AddChildView(extension_host->view());
123 124
124 // This must happen after adding all other children so InfoBarView can ensure 125 // This must happen after adding all other children so InfoBarView can ensure
125 // the close button is the last child. 126 // the close button is the last child.
126 InfoBarView::ViewHierarchyChanged(is_add, parent, child); 127 InfoBarView::ViewHierarchyChanged(is_add, parent, child);
127 128
128 // This must happen after adding all children because it can trigger layout, 129 // This must happen after adding all children because it can trigger layout,
129 // which assumes that particular children (e.g. the close button) have already 130 // which assumes that particular children (e.g. the close button) have already
130 // been added. 131 // been added.
131 const extensions::Extension* extension = extension_host->extension(); 132 const extensions::Extension* extension = extension_host->extension();
132 ExtensionIconSet::Icons image_size = ExtensionIconSet::EXTENSION_ICON_BITTY; 133 extension_misc::ExtensionIcons image_size =
134 extension_misc::EXTENSION_ICON_BITTY;
133 ExtensionResource icon_resource = extension->GetIconResource( 135 ExtensionResource icon_resource = extension->GetIconResource(
134 image_size, ExtensionIconSet::MATCH_EXACTLY); 136 image_size, ExtensionIconSet::MATCH_EXACTLY);
135 tracker_.LoadImage(extension, icon_resource, 137 tracker_.LoadImage(extension, icon_resource,
136 gfx::Size(image_size, image_size), ImageLoadingTracker::DONT_CACHE); 138 gfx::Size(image_size, image_size), ImageLoadingTracker::DONT_CACHE);
137 } 139 }
138 140
139 int ExtensionInfoBar::ContentMinimumWidth() const { 141 int ExtensionInfoBar::ContentMinimumWidth() const {
140 return menu_->GetPreferredSize().width() + kMenuHorizontalMargin; 142 return menu_->GetPreferredSize().width() + kMenuHorizontalMargin;
141 } 143 }
142 144
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 182
181 scoped_refptr<ExtensionContextMenuModel> options_menu_contents = 183 scoped_refptr<ExtensionContextMenuModel> options_menu_contents =
182 new ExtensionContextMenuModel(extension, browser_); 184 new ExtensionContextMenuModel(extension, browser_);
183 DCHECK_EQ(menu_, source); 185 DCHECK_EQ(menu_, source);
184 RunMenuAt(options_menu_contents.get(), menu_, views::MenuItemView::TOPLEFT); 186 RunMenuAt(options_menu_contents.get(), menu_, views::MenuItemView::TOPLEFT);
185 } 187 }
186 188
187 ExtensionInfoBarDelegate* ExtensionInfoBar::GetDelegate() { 189 ExtensionInfoBarDelegate* ExtensionInfoBar::GetDelegate() {
188 return delegate_ ? delegate_->AsExtensionInfoBarDelegate() : NULL; 190 return delegate_ ? delegate_->AsExtensionInfoBarDelegate() : NULL;
189 } 191 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/infobars/extension_infobar_gtk.cc ('k') | chrome/browser/ui/webui/extensions/extension_activity_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698