OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/toolbar/browser_actions_container.h" | 5 #include "chrome/browser/ui/views/toolbar/browser_actions_container.h" |
6 | 6 |
7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
9 #include "chrome/browser/extensions/extension_action_manager.h" | 9 #include "chrome/browser/extensions/extension_action_manager.h" |
10 #include "chrome/browser/extensions/extension_util.h" | 10 #include "chrome/browser/extensions/extension_util.h" |
11 #include "chrome/browser/extensions/extension_view_host.h" | 11 #include "chrome/browser/extensions/extension_view_host.h" |
12 #include "chrome/browser/extensions/tab_helper.h" | 12 #include "chrome/browser/extensions/tab_helper.h" |
13 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
14 #include "chrome/browser/ui/browser.h" | 14 #include "chrome/browser/ui/browser.h" |
15 #include "chrome/browser/ui/browser_window.h" | 15 #include "chrome/browser/ui/browser_window.h" |
16 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 16 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
17 #include "chrome/browser/ui/view_ids.h" | 17 #include "chrome/browser/ui/view_ids.h" |
18 #include "chrome/browser/ui/views/extensions/browser_action_drag_data.h" | 18 #include "chrome/browser/ui/views/extensions/browser_action_drag_data.h" |
19 #include "chrome/browser/ui/views/extensions/extension_keybinding_registry_views .h" | 19 #include "chrome/browser/ui/views/extensions/extension_keybinding_registry_views .h" |
20 #include "chrome/browser/ui/views/extensions/extension_popup.h" | 20 #include "chrome/browser/ui/views/extensions/extension_popup.h" |
21 #include "chrome/browser/ui/views/frame/browser_view.h" | |
21 #include "chrome/browser/ui/views/toolbar/browser_actions_container_observer.h" | 22 #include "chrome/browser/ui/views/toolbar/browser_actions_container_observer.h" |
22 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" | 23 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" |
23 #include "chrome/common/extensions/command.h" | 24 #include "chrome/common/extensions/command.h" |
24 #include "chrome/grit/generated_resources.h" | 25 #include "chrome/grit/generated_resources.h" |
25 #include "extensions/browser/extension_registry.h" | 26 #include "extensions/browser/extension_registry.h" |
26 #include "extensions/browser/extension_system.h" | 27 #include "extensions/browser/extension_system.h" |
27 #include "extensions/browser/runtime_data.h" | 28 #include "extensions/browser/runtime_data.h" |
28 #include "extensions/common/feature_switch.h" | 29 #include "extensions/common/feature_switch.h" |
29 #include "grit/theme_resources.h" | 30 #include "grit/theme_resources.h" |
30 #include "third_party/skia/include/core/SkColor.h" | 31 #include "third_party/skia/include/core/SkColor.h" |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
276 void BrowserActionsContainer::OnBrowserActionViewDragDone() { | 277 void BrowserActionsContainer::OnBrowserActionViewDragDone() { |
277 // We notify here as well as in OnPerformDrop because the dragged view is | 278 // We notify here as well as in OnPerformDrop because the dragged view is |
278 // removed in OnPerformDrop, so it will never get its OnDragDone() call. | 279 // removed in OnPerformDrop, so it will never get its OnDragDone() call. |
279 // TODO(devlin): we should see about fixing that. | 280 // TODO(devlin): we should see about fixing that. |
280 FOR_EACH_OBSERVER(BrowserActionsContainerObserver, | 281 FOR_EACH_OBSERVER(BrowserActionsContainerObserver, |
281 observers_, | 282 observers_, |
282 OnBrowserActionDragDone()); | 283 OnBrowserActionDragDone()); |
283 } | 284 } |
284 | 285 |
285 views::View* BrowserActionsContainer::GetOverflowReferenceView() { | 286 views::View* BrowserActionsContainer::GetOverflowReferenceView() { |
286 // We should only need an overflow reference when using the traditional | 287 // With traditional overflow, the reference is the chevron. With the |
287 // chevron overflow. | 288 // redesign, we use the wrench menu instead. |
288 DCHECK(chevron_); | 289 return chevron_ ? chevron_ : |
289 return chevron_; | 290 BrowserView::GetBrowserViewForBrowser(browser_)->toolbar()->app_menu(); |
Peter Kasting
2014/09/11 20:23:13
Nit: I'd probably wrap like this to ensure the arm
Devlin
2014/09/11 20:53:42
Sure, done.
| |
290 } | 291 } |
291 | 292 |
292 void BrowserActionsContainer::SetPopupOwner(BrowserActionView* popup_owner) { | 293 void BrowserActionsContainer::SetPopupOwner(BrowserActionView* popup_owner) { |
293 // We should never be setting a popup owner when one already exists. | 294 // We should never be setting a popup owner when one already exists. |
294 DCHECK(!popup_owner_ || !popup_owner); | 295 DCHECK(!popup_owner_ || !popup_owner); |
295 popup_owner_ = popup_owner; | 296 popup_owner_ = popup_owner; |
296 } | 297 } |
297 | 298 |
298 void BrowserActionsContainer::HideActivePopup() { | 299 void BrowserActionsContainer::HideActivePopup() { |
299 if (popup_owner_) | 300 if (popup_owner_) |
300 popup_owner_->view_controller()->HidePopup(); | 301 popup_owner_->view_controller()->HidePopup(); |
301 } | 302 } |
302 | 303 |
304 BrowserActionView* BrowserActionsContainer::GetMainViewForExtension( | |
305 const Extension* extension) { | |
306 return in_overflow_mode() ? main_container_->GetViewForExtension(extension) : | |
307 GetViewForExtension(extension); | |
Peter Kasting
2014/09/11 20:23:13
Tiny nit: Personally, I think this indentation is
Devlin
2014/09/11 20:53:42
I don't feel strongly, so happy to oblige. :)
| |
308 } | |
309 | |
303 void BrowserActionsContainer::AddObserver( | 310 void BrowserActionsContainer::AddObserver( |
304 BrowserActionsContainerObserver* observer) { | 311 BrowserActionsContainerObserver* observer) { |
305 observers_.AddObserver(observer); | 312 observers_.AddObserver(observer); |
306 } | 313 } |
307 | 314 |
308 void BrowserActionsContainer::RemoveObserver( | 315 void BrowserActionsContainer::RemoveObserver( |
309 BrowserActionsContainerObserver* observer) { | 316 BrowserActionsContainerObserver* observer) { |
310 observers_.RemoveObserver(observer); | 317 observers_.RemoveObserver(observer); |
311 } | 318 } |
312 | 319 |
(...skipping 761 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1074 size_t absolute_model_size = | 1081 size_t absolute_model_size = |
1075 model_size == -1 ? extensions.size() : model_size; | 1082 model_size == -1 ? extensions.size() : model_size; |
1076 | 1083 |
1077 // The main container will try to show |model_size| icons, but reduce if there | 1084 // The main container will try to show |model_size| icons, but reduce if there |
1078 // aren't enough displayable icons to do so. | 1085 // aren't enough displayable icons to do so. |
1079 size_t main_displayed = std::min(displayable_icon_count, absolute_model_size); | 1086 size_t main_displayed = std::min(displayable_icon_count, absolute_model_size); |
1080 // The overflow will display the extras, if any. | 1087 // The overflow will display the extras, if any. |
1081 return in_overflow_mode() ? | 1088 return in_overflow_mode() ? |
1082 displayable_icon_count - main_displayed : main_displayed; | 1089 displayable_icon_count - main_displayed : main_displayed; |
1083 } | 1090 } |
OLD | NEW |