| 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 "chrome/browser/browser_process.h" | 9 #include "chrome/browser/browser_process.h" |
| 10 #include "chrome/browser/extensions/tab_helper.h" | 10 #include "chrome/browser/extensions/tab_helper.h" |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 | 170 |
| 171 BrowserTabStripController::BrowserTabStripController(Browser* browser, | 171 BrowserTabStripController::BrowserTabStripController(Browser* browser, |
| 172 TabStripModel* model) | 172 TabStripModel* model) |
| 173 : model_(model), | 173 : model_(model), |
| 174 tabstrip_(NULL), | 174 tabstrip_(NULL), |
| 175 browser_(browser), | 175 browser_(browser), |
| 176 hover_tab_selector_(model) { | 176 hover_tab_selector_(model) { |
| 177 model_->AddObserver(this); | 177 model_->AddObserver(this); |
| 178 | 178 |
| 179 local_pref_registrar_.Init(g_browser_process->local_state()); | 179 local_pref_registrar_.Init(g_browser_process->local_state()); |
| 180 local_pref_registrar_.Add(prefs::kTabStripLayoutType, this); | 180 local_pref_registrar_.Add( |
| 181 prefs::kTabStripLayoutType, |
| 182 base::Bind(&BrowserTabStripController::UpdateLayoutType, |
| 183 base::Unretained(this))); |
| 181 } | 184 } |
| 182 | 185 |
| 183 BrowserTabStripController::~BrowserTabStripController() { | 186 BrowserTabStripController::~BrowserTabStripController() { |
| 184 // When we get here the TabStrip is being deleted. We need to explicitly | 187 // When we get here the TabStrip is being deleted. We need to explicitly |
| 185 // cancel the menu, otherwise it may try to invoke something on the tabstrip | 188 // cancel the menu, otherwise it may try to invoke something on the tabstrip |
| 186 // from its destructor. | 189 // from its destructor. |
| 187 if (context_menu_contents_.get()) | 190 if (context_menu_contents_.get()) |
| 188 context_menu_contents_->Cancel(); | 191 context_menu_contents_->Cancel(); |
| 189 | 192 |
| 190 model_->RemoveObserver(this); | 193 model_->RemoveObserver(this); |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 void BrowserTabStripController::TabMiniStateChanged(WebContents* contents, | 428 void BrowserTabStripController::TabMiniStateChanged(WebContents* contents, |
| 426 int model_index) { | 429 int model_index) { |
| 427 SetTabDataAt(contents, model_index); | 430 SetTabDataAt(contents, model_index); |
| 428 } | 431 } |
| 429 | 432 |
| 430 void BrowserTabStripController::TabBlockedStateChanged(WebContents* contents, | 433 void BrowserTabStripController::TabBlockedStateChanged(WebContents* contents, |
| 431 int model_index) { | 434 int model_index) { |
| 432 SetTabDataAt(contents, model_index); | 435 SetTabDataAt(contents, model_index); |
| 433 } | 436 } |
| 434 | 437 |
| 435 //////////////////////////////////////////////////////////////////////////////// | |
| 436 // BrowserTabStripController, content::NotificationObserver implementation: | |
| 437 | |
| 438 void BrowserTabStripController::OnPreferenceChanged( | |
| 439 PrefServiceBase* service, | |
| 440 const std::string& pref_name) { | |
| 441 if (pref_name == prefs::kTabStripLayoutType) { | |
| 442 UpdateLayoutType(); | |
| 443 } | |
| 444 } | |
| 445 | |
| 446 void BrowserTabStripController::SetTabRendererDataFromModel( | 438 void BrowserTabStripController::SetTabRendererDataFromModel( |
| 447 WebContents* contents, | 439 WebContents* contents, |
| 448 int model_index, | 440 int model_index, |
| 449 TabRendererData* data, | 441 TabRendererData* data, |
| 450 TabStatus tab_status) { | 442 TabStatus tab_status) { |
| 451 FaviconTabHelper* favicon_tab_helper = | 443 FaviconTabHelper* favicon_tab_helper = |
| 452 FaviconTabHelper::FromWebContents(contents); | 444 FaviconTabHelper::FromWebContents(contents); |
| 453 | 445 |
| 454 data->favicon = favicon_tab_helper->GetFavicon().AsImageSkia(); | 446 data->favicon = favicon_tab_helper->GetFavicon().AsImageSkia(); |
| 455 data->network_state = TabContentsNetworkState(contents); | 447 data->network_state = TabContentsNetworkState(contents); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 514 SetTabRendererDataFromModel(contents, index, &data, NEW_TAB); | 506 SetTabRendererDataFromModel(contents, index, &data, NEW_TAB); |
| 515 tabstrip_->AddTabAt(index, data, is_active); | 507 tabstrip_->AddTabAt(index, data, is_active); |
| 516 } | 508 } |
| 517 | 509 |
| 518 void BrowserTabStripController::UpdateLayoutType() { | 510 void BrowserTabStripController::UpdateLayoutType() { |
| 519 bool adjust_layout = false; | 511 bool adjust_layout = false; |
| 520 TabStripLayoutType layout_type = | 512 TabStripLayoutType layout_type = |
| 521 DetermineTabStripLayout(g_browser_process->local_state(), &adjust_layout); | 513 DetermineTabStripLayout(g_browser_process->local_state(), &adjust_layout); |
| 522 tabstrip_->SetLayoutType(layout_type, adjust_layout); | 514 tabstrip_->SetLayoutType(layout_type, adjust_layout); |
| 523 } | 515 } |
| OLD | NEW |