| 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_
|
|
|