OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/tabs/browser_tab_strip_controller.h" | 5 #include "chrome/browser/ui/views/tabs/browser_tab_strip_controller.h" |
6 | 6 |
7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 | 88 |
89 virtual ~TabContextMenuContents() { | 89 virtual ~TabContextMenuContents() { |
90 if (controller_) | 90 if (controller_) |
91 controller_->tabstrip_->StopAllHighlighting(); | 91 controller_->tabstrip_->StopAllHighlighting(); |
92 } | 92 } |
93 | 93 |
94 void Cancel() { | 94 void Cancel() { |
95 controller_ = NULL; | 95 controller_ = NULL; |
96 } | 96 } |
97 | 97 |
98 void RunMenuAt(const gfx::Point& point) { | 98 void RunMenuAt(const gfx::Point& point, ui::MenuSourceType source_type) { |
99 if (menu_runner_->RunMenuAt( | 99 if (menu_runner_->RunMenuAt( |
100 tab_->GetWidget(), NULL, gfx::Rect(point, gfx::Size()), | 100 tab_->GetWidget(), NULL, gfx::Rect(point, gfx::Size()), |
101 views::MenuItemView::TOPLEFT, views::MenuRunner::HAS_MNEMONICS | | 101 views::MenuItemView::TOPLEFT, source_type, |
| 102 views::MenuRunner::HAS_MNEMONICS | |
102 views::MenuRunner::CONTEXT_MENU) == | 103 views::MenuRunner::CONTEXT_MENU) == |
103 views::MenuRunner::MENU_DELETED) | 104 views::MenuRunner::MENU_DELETED) |
104 return; | 105 return; |
105 } | 106 } |
106 | 107 |
107 // Overridden from ui::SimpleMenuModel::Delegate: | 108 // Overridden from ui::SimpleMenuModel::Delegate: |
108 virtual bool IsCommandIdChecked(int command_id) const OVERRIDE { | 109 virtual bool IsCommandIdChecked(int command_id) const OVERRIDE { |
109 return false; | 110 return false; |
110 } | 111 } |
111 virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE { | 112 virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE { |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 CloseTabSource source) { | 273 CloseTabSource source) { |
273 // Cancel any pending tab transition. | 274 // Cancel any pending tab transition. |
274 hover_tab_selector_.CancelTabTransition(); | 275 hover_tab_selector_.CancelTabTransition(); |
275 | 276 |
276 tabstrip_->PrepareForCloseAt(model_index, source); | 277 tabstrip_->PrepareForCloseAt(model_index, source); |
277 model_->CloseWebContentsAt(model_index, | 278 model_->CloseWebContentsAt(model_index, |
278 TabStripModel::CLOSE_USER_GESTURE | | 279 TabStripModel::CLOSE_USER_GESTURE | |
279 TabStripModel::CLOSE_CREATE_HISTORICAL_TAB); | 280 TabStripModel::CLOSE_CREATE_HISTORICAL_TAB); |
280 } | 281 } |
281 | 282 |
282 void BrowserTabStripController::ShowContextMenuForTab(Tab* tab, | 283 void BrowserTabStripController::ShowContextMenuForTab( |
283 const gfx::Point& p) { | 284 Tab* tab, |
| 285 const gfx::Point& p, |
| 286 ui::MenuSourceType source_type) { |
284 context_menu_contents_.reset(new TabContextMenuContents(tab, this)); | 287 context_menu_contents_.reset(new TabContextMenuContents(tab, this)); |
285 context_menu_contents_->RunMenuAt(p); | 288 context_menu_contents_->RunMenuAt(p, source_type); |
286 } | 289 } |
287 | 290 |
288 void BrowserTabStripController::UpdateLoadingAnimations() { | 291 void BrowserTabStripController::UpdateLoadingAnimations() { |
289 // Don't use the model count here as it's possible for this to be invoked | 292 // Don't use the model count here as it's possible for this to be invoked |
290 // before we've applied an update from the model (Browser::TabInsertedAt may | 293 // before we've applied an update from the model (Browser::TabInsertedAt may |
291 // be processed before us and invokes this). | 294 // be processed before us and invokes this). |
292 for (int i = 0, tab_count = tabstrip_->tab_count(); i < tab_count; ++i) { | 295 for (int i = 0, tab_count = tabstrip_->tab_count(); i < tab_count; ++i) { |
293 if (model_->ContainsIndex(i)) { | 296 if (model_->ContainsIndex(i)) { |
294 Tab* tab = tabstrip_->tab_at(i); | 297 Tab* tab = tabstrip_->tab_at(i); |
295 WebContents* contents = model_->GetWebContentsAt(i); | 298 WebContents* contents = model_->GetWebContentsAt(i); |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
521 SetTabRendererDataFromModel(contents, index, &data, NEW_TAB); | 524 SetTabRendererDataFromModel(contents, index, &data, NEW_TAB); |
522 tabstrip_->AddTabAt(index, data, is_active); | 525 tabstrip_->AddTabAt(index, data, is_active); |
523 } | 526 } |
524 | 527 |
525 void BrowserTabStripController::UpdateLayoutType() { | 528 void BrowserTabStripController::UpdateLayoutType() { |
526 bool adjust_layout = false; | 529 bool adjust_layout = false; |
527 TabStripLayoutType layout_type = | 530 TabStripLayoutType layout_type = |
528 DetermineTabStripLayout(g_browser_process->local_state(), &adjust_layout); | 531 DetermineTabStripLayout(g_browser_process->local_state(), &adjust_layout); |
529 tabstrip_->SetLayoutType(layout_type, adjust_layout); | 532 tabstrip_->SetLayoutType(layout_type, adjust_layout); |
530 } | 533 } |
OLD | NEW |