| OLD | NEW |
| 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 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/gfx/canvas.h" | 7 #include "app/gfx/canvas.h" |
| 8 #include "app/resource_bundle.h" | 8 #include "app/resource_bundle.h" |
| 9 #include "base/stl_util-inl.h" | 9 #include "base/stl_util-inl.h" |
| 10 #include "chrome/browser/extensions/extension_browser_event_router.h" | 10 #include "chrome/browser/extensions/extension_browser_event_router.h" |
| 11 #include "chrome/browser/extensions/extensions_service.h" | 11 #include "chrome/browser/extensions/extensions_service.h" |
| 12 #include "chrome/browser/extensions/extension_tabs_module.h" | 12 #include "chrome/browser/extensions/extension_tabs_module.h" |
| 13 #include "chrome/browser/image_loading_tracker.h" | 13 #include "chrome/browser/extensions/image_loading_tracker.h" |
| 14 #include "chrome/browser/profile.h" | 14 #include "chrome/browser/profile.h" |
| 15 #include "chrome/browser/views/extensions/extension_popup.h" | 15 #include "chrome/browser/views/extensions/extension_popup.h" |
| 16 #include "chrome/browser/views/toolbar_view.h" | 16 #include "chrome/browser/views/toolbar_view.h" |
| 17 #include "chrome/common/extensions/extension_action.h" | 17 #include "chrome/common/extensions/extension_action.h" |
| 18 #include "chrome/common/notification_source.h" | 18 #include "chrome/common/notification_source.h" |
| 19 #include "chrome/common/notification_type.h" | 19 #include "chrome/common/notification_type.h" |
| 20 #include "grit/app_resources.h" | 20 #include "grit/app_resources.h" |
| 21 #include "third_party/skia/include/core/SkBitmap.h" | 21 #include "third_party/skia/include/core/SkBitmap.h" |
| 22 #include "third_party/skia/include/core/SkTypeface.h" | 22 #include "third_party/skia/include/core/SkTypeface.h" |
| 23 #include "third_party/skia/include/effects/SkGradientShader.h" | 23 #include "third_party/skia/include/effects/SkGradientShader.h" |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 | 123 |
| 124 // Load the images this view needs asynchronously on the file thread. We'll | 124 // Load the images this view needs asynchronously on the file thread. We'll |
| 125 // get a call back into OnImageLoaded if the image loads successfully. If not, | 125 // get a call back into OnImageLoaded if the image loads successfully. If not, |
| 126 // the ImageView will have no image and will not appear in the browser chrome. | 126 // the ImageView will have no image and will not appear in the browser chrome. |
| 127 DCHECK(!browser_action->icon_paths().empty()); | 127 DCHECK(!browser_action->icon_paths().empty()); |
| 128 const std::vector<std::string>& icon_paths = browser_action->icon_paths(); | 128 const std::vector<std::string>& icon_paths = browser_action->icon_paths(); |
| 129 browser_action_icons_.resize(icon_paths.size()); | 129 browser_action_icons_.resize(icon_paths.size()); |
| 130 tracker_ = new ImageLoadingTracker(this, icon_paths.size()); | 130 tracker_ = new ImageLoadingTracker(this, icon_paths.size()); |
| 131 for (std::vector<std::string>::const_iterator iter = icon_paths.begin(); | 131 for (std::vector<std::string>::const_iterator iter = icon_paths.begin(); |
| 132 iter != icon_paths.end(); ++iter) { | 132 iter != icon_paths.end(); ++iter) { |
| 133 FilePath path = extension->GetResourcePath(*iter); | 133 tracker_->PostLoadImageTask(extension->GetResource(*iter)); |
| 134 tracker_->PostLoadImageTask(path); | |
| 135 } | 134 } |
| 136 | 135 |
| 137 registrar_.Add(this, NotificationType::EXTENSION_BROWSER_ACTION_UPDATED, | 136 registrar_.Add(this, NotificationType::EXTENSION_BROWSER_ACTION_UPDATED, |
| 138 Source<ExtensionAction>(browser_action_)); | 137 Source<ExtensionAction>(browser_action_)); |
| 139 } | 138 } |
| 140 | 139 |
| 141 BrowserActionImageView::~BrowserActionImageView() { | 140 BrowserActionImageView::~BrowserActionImageView() { |
| 142 if (tracker_) { | 141 if (tracker_) { |
| 143 tracker_->StopTrackingImageLoad(); | 142 tracker_->StopTrackingImageLoad(); |
| 144 tracker_ = NULL; // The tracker object will be deleted when we return. | 143 tracker_ = NULL; // The tracker object will be deleted when we return. |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 494 // text was too large. | 493 // text was too large. |
| 495 rect.fLeft += kPadding; | 494 rect.fLeft += kPadding; |
| 496 rect.fRight -= kPadding; | 495 rect.fRight -= kPadding; |
| 497 canvas->clipRect(rect); | 496 canvas->clipRect(rect); |
| 498 canvas->drawText(text.c_str(), text.size(), | 497 canvas->drawText(text.c_str(), text.size(), |
| 499 rect.fLeft + (rect.width() - text_width) / 2, | 498 rect.fLeft + (rect.width() - text_width) / 2, |
| 500 rect.fTop + kTextSize + 1, | 499 rect.fTop + kTextSize + 1, |
| 501 text_paint); | 500 text_paint); |
| 502 canvas->restore(); | 501 canvas->restore(); |
| 503 } | 502 } |
| OLD | NEW |