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

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

Issue 264046: Update browser actions api to be like new design doc. (Closed)
Patch Set: rebase Created 11 years, 2 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
OLDNEW
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 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 return zero_inset; 158 return zero_inset;
159 } 159 }
160 160
161 void BrowserActionButton::ButtonPressed( 161 void BrowserActionButton::ButtonPressed(
162 views::Button* sender, const views::Event& event) { 162 views::Button* sender, const views::Event& event) {
163 panel_->OnBrowserActionExecuted(this); 163 panel_->OnBrowserActionExecuted(this);
164 } 164 }
165 165
166 void BrowserActionButton::OnImageLoaded(SkBitmap* image, size_t index) { 166 void BrowserActionButton::OnImageLoaded(SkBitmap* image, size_t index) {
167 DCHECK(index < browser_action_icons_.size()); 167 DCHECK(index < browser_action_icons_.size());
168 browser_action_icons_[index] = *image; 168 browser_action_icons_[index] = image ? *image : SkBitmap();
169 if (index == browser_action_icons_.size() - 1) { 169 if (index == browser_action_icons_.size() - 1) {
170 OnStateUpdated(); 170 OnStateUpdated();
171 tracker_ = NULL; // The tracker object will delete itself when we return. 171 tracker_ = NULL; // The tracker object will delete itself when we return.
172 } 172 }
173 } 173 }
174 174
175 void BrowserActionButton::OnStateUpdated() { 175 void BrowserActionButton::OnStateUpdated() {
176 SkBitmap* image = browser_action_state_->icon(); 176 SkBitmap* image = browser_action_state_->icon();
177 if (!image) 177 if (!image)
178 image = &browser_action_icons_[browser_action_state_->icon_index()]; 178 image = &browser_action_icons_[browser_action_state_->icon_index()];
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 toolbar_->browser(), 475 toolbar_->browser(),
476 rect, 476 rect,
477 browser_action.popup_height()); 477 browser_action.popup_height());
478 popup_->set_delegate(this); 478 popup_->set_delegate(this);
479 popup_button_ = button; 479 popup_button_ = button;
480 popup_button_->PopupDidShow(); 480 popup_button_->PopupDidShow();
481 return; 481 return;
482 } 482 }
483 483
484 // Otherwise, we send the action to the extension. 484 // Otherwise, we send the action to the extension.
485 int window_id = ExtensionTabUtil::GetWindowId(toolbar_->browser());
486 ExtensionBrowserEventRouter::GetInstance()->BrowserActionExecuted( 485 ExtensionBrowserEventRouter::GetInstance()->BrowserActionExecuted(
487 profile_, browser_action.extension_id(), window_id); 486 profile_, browser_action.extension_id(), toolbar_->browser());
488 } 487 }
489 488
490 gfx::Size BrowserActionsContainer::GetPreferredSize() { 489 gfx::Size BrowserActionsContainer::GetPreferredSize() {
491 if (browser_action_views_.empty()) 490 if (browser_action_views_.empty())
492 return gfx::Size(0, 0); 491 return gfx::Size(0, 0);
493 int width = kHorizontalPadding * 2 + 492 int width = kHorizontalPadding * 2 +
494 browser_action_views_.size() * kIconSize; 493 browser_action_views_.size() * kIconSize;
495 return gfx::Size(width, kIconSize); 494 return gfx::Size(width, kIconSize);
496 } 495 }
497 496
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 std::min(static_cast<int>(browser_action_views_.size()), 551 std::min(static_cast<int>(browser_action_views_.size()),
553 kMinimumNumberOfVisibleBrowserActions) * kIconSize; 552 kMinimumNumberOfVisibleBrowserActions) * kIconSize;
554 553
555 // Even if available_width is <= 0, we still return at least the |min_width|. 554 // Even if available_width is <= 0, we still return at least the |min_width|.
556 if (available_width <= 0) 555 if (available_width <= 0)
557 return min_width; 556 return min_width;
558 557
559 return std::max(min_width, available_width - available_width % kIconSize + 558 return std::max(min_width, available_width - available_width % kIconSize +
560 kHorizontalPadding * 2); 559 kHorizontalPadding * 2);
561 } 560 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/browser_actions_toolbar_gtk.cc ('k') | chrome/common/extensions/api/extension_api.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698