| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "base/string_util.h" | 10 #include "base/string_util.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 browser_action_(extension->browser_action()), | 53 browser_action_(extension->browser_action()), |
| 54 extension_(extension), | 54 extension_(extension), |
| 55 tracker_(NULL), | 55 tracker_(NULL), |
| 56 panel_(panel) { | 56 panel_(panel) { |
| 57 set_alignment(TextButton::ALIGN_CENTER); | 57 set_alignment(TextButton::ALIGN_CENTER); |
| 58 | 58 |
| 59 // No UpdateState() here because View heirarchy not setup yet. Our parent | 59 // No UpdateState() here because View heirarchy not setup yet. Our parent |
| 60 // should call UpdateState() after creation. | 60 // should call UpdateState() after creation. |
| 61 | 61 |
| 62 registrar_.Add(this, NotificationType::EXTENSION_BROWSER_ACTION_UPDATED, | 62 registrar_.Add(this, NotificationType::EXTENSION_BROWSER_ACTION_UPDATED, |
| 63 Source<ExtensionAction2>(browser_action_)); | 63 Source<ExtensionAction>(browser_action_)); |
| 64 } | 64 } |
| 65 | 65 |
| 66 BrowserActionButton::~BrowserActionButton() { | 66 BrowserActionButton::~BrowserActionButton() { |
| 67 if (tracker_) { | 67 if (tracker_) { |
| 68 tracker_->StopTrackingImageLoad(); | 68 tracker_->StopTrackingImageLoad(); |
| 69 tracker_ = NULL; // The tracker object will be deleted when we return. | 69 tracker_ = NULL; // The tracker object will be deleted when we return. |
| 70 } | 70 } |
| 71 } | 71 } |
| 72 | 72 |
| 73 gfx::Insets BrowserActionButton::GetInsets() const { | 73 gfx::Insets BrowserActionButton::GetInsets() const { |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 AddChildView(button_); | 198 AddChildView(button_); |
| 199 button_->UpdateState(); | 199 button_->UpdateState(); |
| 200 } | 200 } |
| 201 | 201 |
| 202 void BrowserActionView::Layout() { | 202 void BrowserActionView::Layout() { |
| 203 button_->SetBounds(0, kControlVertOffset, width(), kButtonSize); | 203 button_->SetBounds(0, kControlVertOffset, width(), kButtonSize); |
| 204 } | 204 } |
| 205 | 205 |
| 206 void BrowserActionView::PaintChildren(gfx::Canvas* canvas) { | 206 void BrowserActionView::PaintChildren(gfx::Canvas* canvas) { |
| 207 View::PaintChildren(canvas); | 207 View::PaintChildren(canvas); |
| 208 ExtensionAction2* action = button()->browser_action(); | 208 ExtensionAction* action = button()->browser_action(); |
| 209 int tab_id = panel_->GetCurrentTabId(); | 209 int tab_id = panel_->GetCurrentTabId(); |
| 210 if (tab_id < 0) | 210 if (tab_id < 0) |
| 211 return; | 211 return; |
| 212 | 212 |
| 213 action->PaintBadge(canvas, gfx::Rect(width(), height()), tab_id); | 213 action->PaintBadge(canvas, gfx::Rect(width(), height()), tab_id); |
| 214 } | 214 } |
| 215 | 215 |
| 216 | 216 |
| 217 //////////////////////////////////////////////////////////////////////////////// | 217 //////////////////////////////////////////////////////////////////////////////// |
| 218 // BrowserActionsContainer | 218 // BrowserActionsContainer |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 } | 329 } |
| 330 } | 330 } |
| 331 | 331 |
| 332 void BrowserActionsContainer::TestExecuteBrowserAction(int index) { | 332 void BrowserActionsContainer::TestExecuteBrowserAction(int index) { |
| 333 BrowserActionButton* button = browser_action_views_[index]->button(); | 333 BrowserActionButton* button = browser_action_views_[index]->button(); |
| 334 OnBrowserActionExecuted(button); | 334 OnBrowserActionExecuted(button); |
| 335 } | 335 } |
| 336 | 336 |
| 337 void BrowserActionsContainer::OnBrowserActionExecuted( | 337 void BrowserActionsContainer::OnBrowserActionExecuted( |
| 338 BrowserActionButton* button) { | 338 BrowserActionButton* button) { |
| 339 ExtensionAction2* browser_action = button->browser_action(); | 339 ExtensionAction* browser_action = button->browser_action(); |
| 340 | 340 |
| 341 // Popups just display. No notification to the extension. | 341 // Popups just display. No notification to the extension. |
| 342 // TODO(erikkay): should there be? | 342 // TODO(erikkay): should there be? |
| 343 if (button->IsPopup()) { | 343 if (button->IsPopup()) { |
| 344 // If we're showing the same popup, just hide it and return. | 344 // If we're showing the same popup, just hide it and return. |
| 345 bool same_showing = popup_ && button == popup_button_; | 345 bool same_showing = popup_ && button == popup_button_; |
| 346 | 346 |
| 347 // Always hide the current popup, even if it's not the same. | 347 // Always hide the current popup, even if it's not the same. |
| 348 // Only one popup should be visible at a time. | 348 // Only one popup should be visible at a time. |
| 349 HidePopup(); | 349 HidePopup(); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 452 std::min(static_cast<int>(browser_action_views_.size()), | 452 std::min(static_cast<int>(browser_action_views_.size()), |
| 453 kMinimumNumberOfVisibleBrowserActions) * kButtonSize; | 453 kMinimumNumberOfVisibleBrowserActions) * kButtonSize; |
| 454 | 454 |
| 455 // Even if available_width is <= 0, we still return at least the |min_width|. | 455 // Even if available_width is <= 0, we still return at least the |min_width|. |
| 456 if (available_width <= 0) | 456 if (available_width <= 0) |
| 457 return min_width; | 457 return min_width; |
| 458 | 458 |
| 459 return std::max(min_width, available_width - available_width % kButtonSize + | 459 return std::max(min_width, available_width - available_width % kButtonSize + |
| 460 kHorizontalPadding * 2); | 460 kHorizontalPadding * 2); |
| 461 } | 461 } |
| OLD | NEW |