Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3403)

Unified Diff: chrome/browser/aeropeek_manager.h

Issue 10368027: Remove Aero Peek Tabs code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: '' Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/aeropeek_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « no previous file | chrome/browser/aeropeek_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698