summaryrefslogtreecommitdiffstats
path: root/chrome/browser/tabs/default_tab_handler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/tabs/default_tab_handler.cc')
-rw-r--r--chrome/browser/tabs/default_tab_handler.cc198
1 files changed, 198 insertions, 0 deletions
diff --git a/chrome/browser/tabs/default_tab_handler.cc b/chrome/browser/tabs/default_tab_handler.cc
new file mode 100644
index 0000000..5149173
--- /dev/null
+++ b/chrome/browser/tabs/default_tab_handler.cc
@@ -0,0 +1,198 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/tabs/default_tab_handler.h"
+
+#include "chrome/browser/browser.h"
+#include "chrome/browser/tabs/tab_strip_model.h"
+
+////////////////////////////////////////////////////////////////////////////////
+// DefaultTabHandler, public:
+
+DefaultTabHandler::DefaultTabHandler(TabHandlerDelegate* delegate)
+ : delegate_(delegate),
+ ALLOW_THIS_IN_INITIALIZER_LIST(
+ model_(new TabStripModel(this, delegate->GetProfile()))) {
+ model_->AddObserver(this);
+}
+
+DefaultTabHandler::~DefaultTabHandler() {
+ // The tab strip should not have any significant tabs at this point.
+ DCHECK(!model_->HasNonPhantomTabs());
+ model_->RemoveObserver(this);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// DefaultTabHandler, TabHandler implementation:
+
+TabStripModel* DefaultTabHandler::GetTabStripModel() const {
+ return model_.get();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// DefaultTabHandler, TabStripModelDelegate implementation:
+
+TabContents* DefaultTabHandler::AddBlankTab(bool foreground) {
+ return delegate_->AsBrowser()->AddBlankTab(foreground);
+}
+
+TabContents* DefaultTabHandler::AddBlankTabAt(int index, bool foreground) {
+ return delegate_->AsBrowser()->AddBlankTabAt(index, foreground);
+}
+
+Browser* DefaultTabHandler::CreateNewStripWithContents(
+ TabContents* detached_contents,
+ const gfx::Rect& window_bounds,
+ const DockInfo& dock_info,
+ bool maximize) {
+ return delegate_->AsBrowser()->CreateNewStripWithContents(detached_contents,
+ window_bounds,
+ dock_info,
+ maximize);
+}
+
+void DefaultTabHandler::ContinueDraggingDetachedTab(
+ TabContents* contents,
+ const gfx::Rect& window_bounds,
+ const gfx::Rect& tab_bounds) {
+ delegate_->AsBrowser()->ContinueDraggingDetachedTab(contents,
+ window_bounds,
+ tab_bounds);
+}
+
+int DefaultTabHandler::GetDragActions() const {
+ return delegate_->AsBrowser()->GetDragActions();
+}
+
+TabContents* DefaultTabHandler::CreateTabContentsForURL(
+ const GURL& url,
+ const GURL& referrer,
+ Profile* profile,
+ PageTransition::Type transition,
+ bool defer_load,
+ SiteInstance* instance) const {
+ return delegate_->AsBrowser()->CreateTabContentsForURL(url,
+ referrer,
+ profile,
+ transition,
+ defer_load,
+ instance);
+}
+
+bool DefaultTabHandler::CanDuplicateContentsAt(int index) {
+ return delegate_->AsBrowser()->CanDuplicateContentsAt(index);
+}
+
+void DefaultTabHandler::DuplicateContentsAt(int index) {
+ delegate_->AsBrowser()->DuplicateContentsAt(index);
+}
+
+void DefaultTabHandler::CloseFrameAfterDragSession() {
+ delegate_->AsBrowser()->CloseFrameAfterDragSession();
+}
+
+void DefaultTabHandler::CreateHistoricalTab(TabContents* contents) {
+ delegate_->AsBrowser()->CreateHistoricalTab(contents);
+}
+
+bool DefaultTabHandler::RunUnloadListenerBeforeClosing(TabContents* contents) {
+ return delegate_->AsBrowser()->RunUnloadListenerBeforeClosing(contents);
+}
+
+bool DefaultTabHandler::CanCloseContentsAt(int index) {
+ return delegate_->AsBrowser()->CanCloseContentsAt(index);
+}
+
+bool DefaultTabHandler::CanBookmarkAllTabs() const {
+ return delegate_->AsBrowser()->CanBookmarkAllTabs();
+}
+
+void DefaultTabHandler::BookmarkAllTabs() {
+ delegate_->AsBrowser()->BookmarkAllTabs();
+}
+
+bool DefaultTabHandler::CanCloseTab() const {
+ return delegate_->AsBrowser()->CanCloseTab();
+}
+
+void DefaultTabHandler::ToggleUseVerticalTabs() {
+ delegate_->AsBrowser()->ToggleUseVerticalTabs();
+}
+
+bool DefaultTabHandler::CanRestoreTab() {
+ return delegate_->AsBrowser()->CanRestoreTab();
+}
+
+void DefaultTabHandler::RestoreTab() {
+ delegate_->AsBrowser()->RestoreTab();
+}
+
+bool DefaultTabHandler::LargeIconsPermitted() const {
+ return delegate_->AsBrowser()->LargeIconsPermitted();
+}
+
+bool DefaultTabHandler::UseVerticalTabs() const {
+ return delegate_->AsBrowser()->UseVerticalTabs();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// DefaultTabHandler, TabStripModelObserver implementation:
+
+void DefaultTabHandler::TabInsertedAt(TabContents* contents,
+ int index,
+ bool foreground) {
+ delegate_->AsBrowser()->TabInsertedAt(contents, index, foreground);
+}
+
+void DefaultTabHandler::TabClosingAt(TabContents* contents, int index) {
+ delegate_->AsBrowser()->TabClosingAt(contents, index);
+}
+
+void DefaultTabHandler::TabDetachedAt(TabContents* contents, int index) {
+ delegate_->AsBrowser()->TabDetachedAt(contents, index);
+}
+
+void DefaultTabHandler::TabDeselectedAt(TabContents* contents, int index) {
+ delegate_->AsBrowser()->TabDeselectedAt(contents, index);
+}
+
+void DefaultTabHandler::TabSelectedAt(TabContents* old_contents,
+ TabContents* new_contents,
+ int index,
+ bool user_gesture) {
+ delegate_->AsBrowser()->TabSelectedAt(old_contents,
+ new_contents,
+ index,
+ user_gesture);
+}
+
+void DefaultTabHandler::TabMoved(TabContents* contents,
+ int from_index,
+ int to_index) {
+ delegate_->AsBrowser()->TabMoved(contents, from_index, to_index);
+}
+
+void DefaultTabHandler::TabReplacedAt(TabContents* old_contents,
+ TabContents* new_contents,
+ int index) {
+ delegate_->AsBrowser()->TabReplacedAt(old_contents, new_contents, index);
+}
+
+void DefaultTabHandler::TabPinnedStateChanged(TabContents* contents,
+ int index) {
+ delegate_->AsBrowser()->TabPinnedStateChanged(contents, index);
+}
+
+void DefaultTabHandler::TabStripEmpty() {
+ delegate_->AsBrowser()->TabStripEmpty();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// TabHandler, public:
+
+// static
+TabHandler* TabHandler::CreateTabHandler(TabHandlerDelegate* delegate) {
+ return new DefaultTabHandler(delegate);
+}
+