Index: chrome/browser/sidebar/sidebar_manager.h |
=================================================================== |
--- chrome/browser/sidebar/sidebar_manager.h (revision 115251) |
+++ chrome/browser/sidebar/sidebar_manager.h (working copy) |
@@ -1,149 +0,0 @@ |
-// Copyright (c) 2011 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. |
- |
-#ifndef CHROME_BROWSER_SIDEBAR_SIDEBAR_MANAGER_H_ |
-#define CHROME_BROWSER_SIDEBAR_SIDEBAR_MANAGER_H_ |
- |
-#include <map> |
-#include <string> |
- |
-#include "base/memory/ref_counted.h" |
-#include "base/string16.h" |
-#include "chrome/browser/sidebar/sidebar_container.h" |
-#include "content/public/browser/notification_observer.h" |
-#include "content/public/browser/notification_registrar.h" |
- |
-class GURL; |
-class SidebarContainer; |
-class SkBitmap; |
-class TabContents; |
- |
-/////////////////////////////////////////////////////////////////////////////// |
-// SidebarManager |
-// |
-// This class is a singleton that manages SidebarContainer instances and |
-// maintains a connection between tabs and sidebars. |
-// |
-class SidebarManager : public content::NotificationObserver, |
- public base::RefCounted<SidebarManager>, |
- private SidebarContainer::Delegate { |
- public: |
- // Returns s singleton instance. |
- static SidebarManager* GetInstance(); |
- |
- // Returns true if sidebar is allowed to be displayed in the browser. |
- static bool IsSidebarAllowed(); |
- |
- SidebarManager(); |
- |
- // Returns SidebarContainer registered for |tab| and active or NULL if |
- // there is no alive and active SidebarContainer registered for |tab|. |
- SidebarContainer* GetActiveSidebarContainerFor(TabContents* tab); |
- |
- // Returns SidebarContainer registered for |tab| and |content_id| or NULL if |
- // there is no such SidebarContainer registered. |
- SidebarContainer* GetSidebarContainerFor(TabContents* tab, |
- const std::string& content_id); |
- |
- // Returns sidebar's TabContents registered for |tab| and |content_id|. |
- TabContents* GetSidebarTabContents(TabContents* tab, |
- const std::string& content_id); |
- |
- // Sends sidebar state change notification to extensions. |
- void NotifyStateChanges(TabContents* was_active_sidebar_contents, |
- TabContents* active_sidebar_contents); |
- |
- // Functions supporting chrome.experimental.sidebar API. |
- |
- // Shows sidebar identified by |tab| and |content_id| (only sidebar's |
- // mini tab is visible). |
- void ShowSidebar(TabContents* tab, const std::string& content_id); |
- |
- // Expands sidebar identified by |tab| and |content_id|. |
- void ExpandSidebar(TabContents* tab, const std::string& content_id); |
- |
- // Collapses sidebar identified by |tab| and |content_id| (has no effect |
- // if sidebar is not expanded). |
- void CollapseSidebar(TabContents* tab, const std::string& content_id); |
- |
- // Hides sidebar identified by |tab| and |content_id| (removes sidebar's |
- // mini tab). |
- void HideSidebar(TabContents* tab, const std::string& content_id); |
- |
- // Navigates sidebar identified by |tab| and |content_id| to |url|. |
- void NavigateSidebar(TabContents* tab, |
- const std::string& content_id, |
- const GURL& url); |
- |
- // Changes sidebar's badge text (displayed on the mini tab). |
- void SetSidebarBadgeText(TabContents* tab, |
- const std::string& content_id, |
- const string16& badge_text); |
- |
- // Changes sidebar's icon (displayed on the mini tab). |
- void SetSidebarIcon(TabContents* tab, |
- const std::string& content_id, |
- const SkBitmap& bitmap); |
- |
- // Changes sidebar's title (mini tab's tooltip). |
- void SetSidebarTitle(TabContents* tab, |
- const std::string& content_id, |
- const string16& title); |
- |
- private: |
- friend class base::RefCounted<SidebarManager>; |
- |
- virtual ~SidebarManager(); |
- |
- // Overridden from content::NotificationObserver. |
- virtual void Observe(int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) OVERRIDE; |
- |
- // Overridden from SidebarContainer::Delegate. |
- virtual void UpdateSidebar(SidebarContainer* host) OVERRIDE; |
- |
- // Hides all sidebars registered for |tab|. |
- void HideAllSidebars(TabContents* tab); |
- |
- // Returns SidebarContainer corresponding to |sidebar_contents|. |
- SidebarContainer* FindSidebarContainerFor(TabContents* sidebar_contents); |
- |
- // Registers new SidebarContainer for |tab|. There must be no |
- // other SidebarContainers registered for the RenderViewHost at the moment. |
- void RegisterSidebarContainerFor(TabContents* tab, |
- SidebarContainer* container); |
- |
- // Unregisters SidebarContainer identified by |tab| and |content_id|. |
- void UnregisterSidebarContainerFor(TabContents* tab, |
- const std::string& content_id); |
- |
- // Records the link between |tab| and |sidebar_host|. |
- void BindSidebarHost(TabContents* tab, SidebarContainer* sidebar_host); |
- |
- // Forgets the link between |tab| and |sidebar_host|. |
- void UnbindSidebarHost(TabContents* tab, SidebarContainer* sidebar_host); |
- |
- content::NotificationRegistrar registrar_; |
- |
- // This map stores sidebars linked to a particular tab. Sidebars are |
- // identified by their unique content id (string). |
- typedef std::map<std::string, SidebarContainer*> ContentIdToSidebarHostMap; |
- |
- // These two maps are for tracking dependencies between tabs and |
- // their SidebarContainers. |
- // |
- // SidebarManager start listening to SidebarContainers when they are put |
- // into these maps and removes them when they are closing. |
- struct SidebarStateForTab; |
- typedef std::map<TabContents*, SidebarStateForTab> TabToSidebarHostMap; |
- TabToSidebarHostMap tab_to_sidebar_host_; |
- |
- typedef std::map<SidebarContainer*, TabContents*> SidebarHostToTabMap; |
- SidebarHostToTabMap sidebar_host_to_tab_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SidebarManager); |
-}; |
- |
-#endif // CHROME_BROWSER_SIDEBAR_SIDEBAR_MANAGER_H_ |