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

Side by Side Diff: chrome/browser/views/browser_actions_container.cc

Issue 2862025: Canvas refactoring part 2.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 6 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/views/browser_actions_container.h" 5 #include "chrome/browser/views/browser_actions_container.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "app/slide_animation.h" 9 #include "app/slide_animation.h"
10 #include "base/stl_util-inl.h" 10 #include "base/stl_util-inl.h"
(...skipping 13 matching lines...) Expand all
24 #include "chrome/browser/views/detachable_toolbar_view.h" 24 #include "chrome/browser/views/detachable_toolbar_view.h"
25 #include "chrome/browser/views/extensions/browser_action_drag_data.h" 25 #include "chrome/browser/views/extensions/browser_action_drag_data.h"
26 #include "chrome/browser/views/extensions/extension_popup.h" 26 #include "chrome/browser/views/extensions/extension_popup.h"
27 #include "chrome/browser/views/toolbar_view.h" 27 #include "chrome/browser/views/toolbar_view.h"
28 #include "chrome/common/extensions/extension_action.h" 28 #include "chrome/common/extensions/extension_action.h"
29 #include "chrome/common/extensions/extension_resource.h" 29 #include "chrome/common/extensions/extension_resource.h"
30 #include "chrome/common/notification_source.h" 30 #include "chrome/common/notification_source.h"
31 #include "chrome/common/notification_type.h" 31 #include "chrome/common/notification_type.h"
32 #include "chrome/common/pref_names.h" 32 #include "chrome/common/pref_names.h"
33 #include "gfx/canvas.h" 33 #include "gfx/canvas.h"
34 #include "gfx/canvas_skia.h"
34 #include "grit/app_resources.h" 35 #include "grit/app_resources.h"
35 #include "grit/generated_resources.h" 36 #include "grit/generated_resources.h"
36 #include "third_party/skia/include/core/SkBitmap.h" 37 #include "third_party/skia/include/core/SkBitmap.h"
37 #include "third_party/skia/include/core/SkTypeface.h" 38 #include "third_party/skia/include/core/SkTypeface.h"
38 #include "third_party/skia/include/effects/SkGradientShader.h" 39 #include "third_party/skia/include/effects/SkGradientShader.h"
39 #include "views/controls/button/menu_button.h" 40 #include "views/controls/button/menu_button.h"
40 #include "views/controls/button/text_button.h" 41 #include "views/controls/button/text_button.h"
41 #include "views/controls/menu/menu_2.h" 42 #include "views/controls/menu/menu_2.h"
42 #include "views/drag_utils.h" 43 #include "views/drag_utils.h"
43 #include "views/window/window.h" 44 #include "views/window/window.h"
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 button_->UpdateState(); 309 button_->UpdateState();
309 SetAccessibleName( 310 SetAccessibleName(
310 l10n_util::GetString(IDS_ACCNAME_EXTENSIONS_BROWSER_ACTION)); 311 l10n_util::GetString(IDS_ACCNAME_EXTENSIONS_BROWSER_ACTION));
311 } 312 }
312 313
313 BrowserActionView::~BrowserActionView() { 314 BrowserActionView::~BrowserActionView() {
314 RemoveChildView(button_); 315 RemoveChildView(button_);
315 button_->Destroy(); 316 button_->Destroy();
316 } 317 }
317 318
318 gfx::Canvas* BrowserActionView::GetIconWithBadge() { 319 gfx::CanvasSkia* BrowserActionView::GetIconWithBadge() {
319 int tab_id = panel_->GetCurrentTabId(); 320 int tab_id = panel_->GetCurrentTabId();
320 321
321 SkBitmap icon = button_->extension()->browser_action()->GetIcon(tab_id); 322 SkBitmap icon = button_->extension()->browser_action()->GetIcon(tab_id);
322 if (icon.isNull()) 323 if (icon.isNull())
323 icon = button_->default_icon(); 324 icon = button_->default_icon();
324 325
325 gfx::Canvas* canvas = new gfx::Canvas(icon.width(), icon.height(), false); 326 gfx::CanvasSkia* canvas =
327 new gfx::CanvasSkia(icon.width(), icon.height(), false);
326 canvas->DrawBitmapInt(icon, 0, 0); 328 canvas->DrawBitmapInt(icon, 0, 0);
327 329
328 if (tab_id >= 0) { 330 if (tab_id >= 0) {
329 gfx::Rect bounds = 331 gfx::Rect bounds =
330 gfx::Rect(icon.width(), icon.height() + kControlVertOffset); 332 gfx::Rect(icon.width(), icon.height() + kControlVertOffset);
331 button_->extension()->browser_action()->PaintBadge(canvas, bounds, tab_id); 333 button_->extension()->browser_action()->PaintBadge(canvas->AsCanvas(),
334 bounds, tab_id);
332 } 335 }
333 336
334 return canvas; 337 return canvas;
335 } 338 }
336 339
337 bool BrowserActionView::GetAccessibleRole(AccessibilityTypes::Role* role) { 340 bool BrowserActionView::GetAccessibleRole(AccessibilityTypes::Role* role) {
338 DCHECK(role); 341 DCHECK(role);
339 *role = AccessibilityTypes::ROLE_GROUPING; 342 *role = AccessibilityTypes::ROLE_GROUPING;
340 return true; 343 return true;
341 } 344 }
(...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 861
859 void BrowserActionsContainer::WriteDragData(View* sender, 862 void BrowserActionsContainer::WriteDragData(View* sender,
860 const gfx::Point& press_pt, 863 const gfx::Point& press_pt,
861 OSExchangeData* data) { 864 OSExchangeData* data) {
862 DCHECK(data); 865 DCHECK(data);
863 866
864 for (size_t i = 0; i < browser_action_views_.size(); ++i) { 867 for (size_t i = 0; i < browser_action_views_.size(); ++i) {
865 BrowserActionButton* button = browser_action_views_[i]->button(); 868 BrowserActionButton* button = browser_action_views_[i]->button();
866 if (button == sender) { 869 if (button == sender) {
867 // Set the dragging image for the icon. 870 // Set the dragging image for the icon.
868 scoped_ptr<gfx::Canvas> canvas( 871 scoped_ptr<gfx::CanvasSkia> canvas(
869 browser_action_views_[i]->GetIconWithBadge()); 872 browser_action_views_[i]->GetIconWithBadge());
870 drag_utils::SetDragImageOnDataObject(*canvas, button->size(), press_pt, 873 drag_utils::SetDragImageOnDataObject(*canvas->AsCanvas(), button->size(), press_pt,
871 data); 874 data);
872 875
873 // Fill in the remaining info. 876 // Fill in the remaining info.
874 BrowserActionDragData drag_data( 877 BrowserActionDragData drag_data(
875 browser_action_views_[i]->button()->extension()->id(), i); 878 browser_action_views_[i]->button()->extension()->id(), i);
876 drag_data.Write(profile_, data); 879 drag_data.Write(profile_, data);
877 break; 880 break;
878 } 881 }
879 } 882 }
880 } 883 }
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
1160 popup_ = NULL; 1163 popup_ = NULL;
1161 popup_button_->SetButtonNotPushed(); 1164 popup_button_->SetButtonNotPushed();
1162 popup_button_ = NULL; 1165 popup_button_ = NULL;
1163 } 1166 }
1164 1167
1165 bool BrowserActionsContainer::ShouldDisplayBrowserAction(Extension* extension) { 1168 bool BrowserActionsContainer::ShouldDisplayBrowserAction(Extension* extension) {
1166 // Only display incognito-enabled extensions while in incognito mode. 1169 // Only display incognito-enabled extensions while in incognito mode.
1167 return (!profile_->IsOffTheRecord() || 1170 return (!profile_->IsOffTheRecord() ||
1168 profile_->GetExtensionsService()->IsIncognitoEnabled(extension)); 1171 profile_->GetExtensionsService()->IsIncognitoEnabled(extension));
1169 } 1172 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698