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 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_BROWSER_TAB_STRIP_MODEL_DELEGATE_H_ 6#define CHROME_BROWSER_UI_BROWSER_TAB_STRIP_MODEL_DELEGATE_H_ 7 8#include "base/compiler_specific.h" 9#include "base/memory/weak_ptr.h" 10#include "chrome/browser/ui/tabs/tab_strip_model_delegate.h" 11 12class GURL; 13 14namespace chrome { 15 16class BrowserTabStripModelDelegate : public TabStripModelDelegate { 17 public: 18 explicit BrowserTabStripModelDelegate(Browser* browser); 19 virtual ~BrowserTabStripModelDelegate(); 20 21 private: 22 // Overridden from TabStripModelDelegate: 23 virtual void AddTabAt(const GURL& url, 24 int index, 25 bool foreground) OVERRIDE; 26 virtual Browser* CreateNewStripWithContents( 27 const std::vector<NewStripContents>& contentses, 28 const gfx::Rect& window_bounds, 29 bool maximize) OVERRIDE; 30 virtual void WillAddWebContents(content::WebContents* contents) OVERRIDE; 31 virtual int GetDragActions() const OVERRIDE; 32 virtual bool CanDuplicateContentsAt(int index) OVERRIDE; 33 virtual void DuplicateContentsAt(int index) OVERRIDE; 34 virtual void CreateHistoricalTab(content::WebContents* contents) OVERRIDE; 35 virtual bool RunUnloadListenerBeforeClosing( 36 content::WebContents* contents) OVERRIDE; 37 virtual bool ShouldRunUnloadListenerBeforeClosing( 38 content::WebContents* contents) OVERRIDE; 39 virtual bool CanBookmarkAllTabs() const OVERRIDE; 40 virtual void BookmarkAllTabs() OVERRIDE; 41 virtual RestoreTabType GetRestoreTabType() OVERRIDE; 42 virtual void RestoreTab() OVERRIDE; 43 44 void CloseFrame(); 45 46 Browser* browser_; 47 48 // The following factory is used to close the frame at a later time. 49 base::WeakPtrFactory<BrowserTabStripModelDelegate> weak_factory_; 50 51 DISALLOW_COPY_AND_ASSIGN(BrowserTabStripModelDelegate); 52}; 53 54} // namespace chrome 55 56#endif // CHROME_BROWSER_UI_BROWSER_TAB_STRIP_MODEL_DELEGATE_H_ 57