Index: chrome/browser/aeropeek_manager.h |
diff --git a/chrome/browser/aeropeek_manager.h b/chrome/browser/aeropeek_manager.h |
deleted file mode 100644 |
index 2f2b1c23375c1318dc2ed7fd83537032002aa60f..0000000000000000000000000000000000000000 |
--- a/chrome/browser/aeropeek_manager.h |
+++ /dev/null |
@@ -1,204 +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_AEROPEEK_MANAGER_H_ |
-#define CHROME_BROWSER_AEROPEEK_MANAGER_H_ |
-#pragma once |
- |
-#include <windows.h> |
- |
-#include <list> |
- |
-#include "chrome/browser/tabs/tab_strip_model_observer.h" |
-#include "ui/gfx/insets.h" |
- |
-class AeroPeekWindow; |
-class SkBitmap; |
-class TabContentsWrapper; |
- |
-namespace content { |
-class WebContents; |
-} |
- |
-namespace gfx { |
-class Size; |
-} |
- |
-// A class which defines interfaces called from AeroPeekWindow. |
-// This class is used for dispatching an event received by a thumbnail window |
-// and for retrieving information from Chrome. |
-// An AeroPeek window receives the following events: |
-// * A user clicks an AeroPeek thumbnail. |
-// We need to select a tab associated with this window. |
-// * A user closes an AeroPeek thumbnail. |
-// We need to close a tab associated with this window. |
-// * A user clicks a toolbar button in an AeroPeek window. |
-// We may need to dispatch this button event to a tab associated with this |
-// thumbnail window. |
-// <http://msdn.microsoft.com/en-us/library/dd378460(VS.85).aspx#thumbbars>. |
-// Also, it needs the following information of the browser: |
-// * The bitmap of a tab associated with this window. |
-// This bitmap is used for creating thumbnail and preview images. |
-// * The rectangle of a browser frame. |
-// This rectangle is used for pasting the above bitmap to the right position |
-// and for marking the tab-content area as opaque. |
-// We assume these functions are called only from a UI thread (i.e. |
-// Chrome_BrowserMain). |
-class AeroPeekWindowDelegate { |
- public: |
- virtual void ActivateTab(int tab_id) = 0; |
- virtual void CloseTab(int tab_id) = 0; |
- virtual void GetContentInsets(gfx::Insets* insets) = 0; |
- virtual bool GetTabThumbnail(int tab_id, SkBitmap* thumbnail) = 0; |
- virtual bool GetTabPreview(int tab_id, SkBitmap* preview) = 0; |
- |
- protected: |
- virtual ~AeroPeekWindowDelegate() {} |
-}; |
- |
-// A class that implements AeroPeek of Windows 7: |
-// <http://msdn.microsoft.com/en-us/library/dd378460(VS.85).aspx#thumbnails>. |
-// Windows 7 can dispay a thumbnail image of each tab to its taskbar so that |
-// a user can preview the contents of a tab (AeroPeek), choose a tab, close |
-// a tab, etc. |
-// This class implements the TabStripModelObserver interface to receive the |
-// following events sent from TabStripModel and dispatch them to Windows: |
-// * A tab is added. |
-// This class adds a thumbnail window for this tab to the thumbnail list |
-// of Windows. |
-// * A tab is being closed. |
-// This class deletes the thumbnail window associated with this tab from the |
-// thumbnail list of Windows. |
-// * A tab has been updated. |
-// This class updates the image of the thumbnail window associated with this |
-// tab. |
-// Also, this class receives events sent from Windows via thumbnail windows to |
-// TabStripModel: |
-// * A thumbnail window is closed. |
-// Ask TabStrip to close the tab associated with this thumbnail window. |
-// * A thumbnail window is selected. |
-// Ask TabStrip to activate the tab associated with this thumbnail window. |
-// |
-// The simplest usage of this class is: |
-// 1. Create an instance of TabThumbnailManager. |
-// 2. Add this instance to the observer list of a TabStrip object. |
-// |
-// scoped_ptr<TabThumbnailManager> manager; |
-// manager.reset(new TabThumbnailManager( |
-// frame_->GetWindow()->GetNativeWindow(), |
-// border_left, |
-// border_top, |
-// toolbar_top)); |
-// g_browser->tabstrip_model()->AddObserver(manager); |
-// |
-// 3. Remove this instance from the observer list of the TabStrip object when |
-// we don't need it. |
-// |
-// g_browser->tabstrip_model()->RemoveObserver(manager); |
-// |
-class AeroPeekManager : public TabStripModelObserver, |
- public AeroPeekWindowDelegate { |
- public: |
- explicit AeroPeekManager(HWND application_window); |
- virtual ~AeroPeekManager(); |
- |
- // Sets the margins of the "user-perceived content area". |
- // (See comments of |content_insets_|). |
- void SetContentInsets(const gfx::Insets& insets); |
- |
- // Returns whether or not we should enable Tab Thumbnailing and Aero Peek |
- // of Windows 7. |
- static bool Enabled(); |
- |
- // Overridden from TabStripModelObserver: |
- virtual void TabInsertedAt(TabContentsWrapper* contents, |
- int index, |
- bool foreground); |
- virtual void TabDetachedAt(TabContentsWrapper* contents, int index); |
- virtual void ActiveTabChanged(TabContentsWrapper* old_contents, |
- TabContentsWrapper* new_contents, |
- int index, |
- bool user_gesture); |
- virtual void TabMoved(TabContentsWrapper* contents, |
- int from_index, |
- int to_index, |
- bool pinned_state_changed); |
- virtual void TabChangedAt(TabContentsWrapper* contents, |
- int index, |
- TabChangeType change_type); |
- virtual void TabReplacedAt(TabStripModel* tab_strip_model, |
- TabContentsWrapper* old_contents, |
- TabContentsWrapper* new_contents, |
- int index); |
- |
- // Overriden from TabThumbnailWindowDelegate: |
- virtual void CloseTab(int tab_id); |
- virtual void ActivateTab(int tab_id); |
- virtual void GetContentInsets(gfx::Insets* insets); |
- virtual bool GetTabThumbnail(int tab_id, SkBitmap* thumbnail); |
- virtual bool GetTabPreview(int tab_id, SkBitmap* preview); |
- |
- private: |
- // Deletes the TabThumbnailWindow object associated with the specified |
- // Tab ID. |
- void DeleteAeroPeekWindow(int tab_id); |
- |
- // If there is an AeroPeekWindow associated with |tab| it is removed and |
- // deleted. |
- void DeleteAeroPeekWindowForTab(TabContentsWrapper* tab); |
- |
- // Retrieves the AeroPeekWindow object associated with the specified |
- // Tab ID. |
- AeroPeekWindow* GetAeroPeekWindow(int tab_id) const; |
- |
- // If an AeroPeekWindow hasn't been created for |tab| yet, one is created. |
- // |foreground| is true if the tab is selected. |
- void CreateAeroPeekWindowIfNecessary(TabContentsWrapper* tab, |
- bool foreground); |
- |
- // Returns a rectangle that fits into the destination rectangle and keeps |
- // the pixel-aspect ratio of the source one. |
- // (This function currently uses the longer-fit algorithm as IE8 does.) |
- void GetOutputBitmapSize(const gfx::Size& destination, |
- const gfx::Size& source, |
- gfx::Size* output) const; |
- |
- // Returns the WebContents object associated with the specified Tab ID only |
- // if it is alive. |
- // Since Windows cannot send AeroPeek events directly to Chrome windows, we |
- // use a place-holder window to receive AeroPeek events. So, when Windows |
- // sends an AeroPeek event, the corresponding tab (and WebContents) may have |
- // been deleted by Chrome. To prevent us from accessing deleted WebContents, |
- // we need to check if the tab is still alive. |
- content::WebContents* GetWebContents(int tab_id) const; |
- |
- // Returns the tab ID from the specified TabContentsWrapper. |
- int GetTabID(TabContentsWrapper* contents) const; |
- |
- private: |
- // The parent window of the place-holder windows used by AeroPeek. |
- // In the case of Chrome, this window becomes a browser frame. |
- HWND application_window_; |
- |
- // The list of the place-holder windows used by AeroPeek. |
- std::list<AeroPeekWindow*> tab_list_; |
- |
- // The left and top borders of the frame window. |
- // When we create a preview bitmap, we use these values for preventing from |
- // over-writing the area of the browser frame. |
- int border_left_; |
- int border_top_; |
- |
- // The top position of the toolbar. |
- // This value is used for setting the alpha values of the frame area so a |
- // preview image can use transparent colors only in the frame area. |
- int toolbar_top_; |
- |
- // The margins of the "user-perceived content area". |
- // This value is used for pasting a tab image onto this "user-perceived |
- // content area" when creating a preview image. |
- gfx::Insets content_insets_; |
-}; |
- |
-#endif // CHROME_BROWSER_AEROPEEK_MANAGER_H_ |