15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/views/tabs/fake_base_tab_strip_controller.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/views/tabs/tab_renderer_data.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/views/tabs/tab_strip.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)FakeBaseTabStripController::FakeBaseTabStripController()
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    : tab_strip_(NULL),
12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      num_tabs_(0),
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      active_index_(-1) {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)FakeBaseTabStripController::~FakeBaseTabStripController() {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeBaseTabStripController::AddTab(int index, bool is_active) {
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  num_tabs_++;
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  tab_strip_->AddTabAt(index, TabRendererData(), is_active);
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  if (is_active)
23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    active_index_ = index;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void FakeBaseTabStripController::RemoveTab(int index) {
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  num_tabs_--;
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  tab_strip_->RemoveTabAt(index);
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  if (active_index_ == index)
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    active_index_ = -1;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const ui::ListSelectionModel& FakeBaseTabStripController::GetSelectionModel() {
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return selection_model_;
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int FakeBaseTabStripController::GetCount() const {
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return num_tabs_;
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool FakeBaseTabStripController::IsValidIndex(int index) const {
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return index >= 0 && index < num_tabs_;
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool FakeBaseTabStripController::IsActiveTab(int index) const {
46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  if (!IsValidIndex(index))
47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    return false;
48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return active_index_ == index;
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int FakeBaseTabStripController::GetActiveIndex() const {
52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return active_index_;
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool FakeBaseTabStripController::IsTabSelected(int index) const {
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool FakeBaseTabStripController::IsTabPinned(int index) const {
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool FakeBaseTabStripController::IsNewTabPage(int index) const {
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void FakeBaseTabStripController::SelectTab(int index) {
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void FakeBaseTabStripController::ExtendSelectionTo(int index) {
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void FakeBaseTabStripController::ToggleSelected(int index) {
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void FakeBaseTabStripController::AddSelectionFromAnchorTo(int index) {
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void FakeBaseTabStripController::CloseTab(int index, CloseTabSource source) {
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
827d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void FakeBaseTabStripController::ShowContextMenuForTab(
837d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    Tab* tab,
847d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    const gfx::Point& p,
857d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    ui::MenuSourceType source_type) {
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void FakeBaseTabStripController::UpdateLoadingAnimations() {
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int FakeBaseTabStripController::HasAvailableDragActions() const {
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return 0;
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void FakeBaseTabStripController::OnDropIndexUpdate(int index,
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                                   bool drop_before) {
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void FakeBaseTabStripController::PerformDrop(bool drop_before,
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                             int index,
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                             const GURL& url) {
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool FakeBaseTabStripController::IsCompatibleWith(TabStrip* other) const {
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void FakeBaseTabStripController::CreateNewTab() {
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool FakeBaseTabStripController::IsIncognito() {
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void FakeBaseTabStripController::LayoutTypeMaybeChanged() {
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
1187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void FakeBaseTabStripController::OnStartedDraggingTabs() {
1197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}
1207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
1217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void FakeBaseTabStripController::OnStoppedDraggingTabs() {
1227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}
123