Index: chrome/browser/ui/views/sidebar/sidebar_tab_strip_host.h |
=================================================================== |
--- chrome/browser/ui/views/sidebar/sidebar_tab_strip_host.h (revision 0) |
+++ chrome/browser/ui/views/sidebar/sidebar_tab_strip_host.h (revision 0) |
@@ -0,0 +1,74 @@ |
+// Copyright (c) 2010 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_UI_VIEWS_SIDEBAR_SIDEBAR_TAB_STRIP_HOST_H_ |
+#define CHROME_BROWSER_UI_VIEWS_SIDEBAR_SIDEBAR_TAB_STRIP_HOST_H_ |
+#pragma once |
+ |
+#include "base/scoped_ptr.h" |
+#include "gfx/native_widget_types.h" |
+ |
+class BrowserView; |
+class SidebarBaseTabStrip; |
+ |
+namespace gfx { |
+class Rect; |
+class Size; |
+} |
+ |
+namespace views { |
+class View; |
+class Widget; |
+} |
+ |
+// SidebarTabStripHost implements the container widget for the UI that |
+// is shown on top of the browser contents. It uses the appropriate |
+// implementation from sidebar_tab_strip_host_win.cc or |
+// sidebar_tab_strip_host_gtk.cc to draw its content and is responsible |
+// for showing, hiding and resizing the host widget and keeping widget shape |
+// in sync with sidebar tab strip. |
+class SidebarTabStripHost { |
+ public: |
+ explicit SidebarTabStripHost(BrowserView* browser_view); |
+ virtual ~SidebarTabStripHost(); |
+ |
+ // Initializes the dropdown bar host with the given view. |
+ void Init(SidebarBaseTabStrip* view); |
+ |
+ // Moves the widget to the provided location, moves it to top |
+ // in the z-order (HWND_TOP, not HWND_TOPMOST for windows) and shows |
+ // the widget if new_pos is not empty, hides it otherwise. |
+ virtual void SetPosition(const gfx::Rect& new_pos); |
+ |
+ // Updates host widget to match the shape of the tab strip. |
+ void UpdateWindowEdges(); |
+ |
+ // Returns the size of the widget's contents view. |
+ gfx::Size GetContentsSize() const; |
+ |
+ protected: |
+ // Returns the sidebar tab strip view. |
+ SidebarBaseTabStrip* view() const { return view_; } |
+ |
+ // Creates and returns the native Widget. |
+ views::Widget* CreateHost(); |
+ |
+ // Allows platform implementation to tweak widget position. |
+ void SetWidgetPositionNative(const gfx::Rect& new_pos, bool no_redraw); |
+ |
+ private: |
+ // The BrowserView that created us. |
+ BrowserView* const browser_view_; |
+ |
+ // Our view, which is responsible for drawing the UI. |
+ SidebarBaseTabStrip* view_; |
+ |
+ // Host widget. |
+ scoped_ptr<views::Widget> host_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(SidebarTabStripHost); |
+}; |
+ |
+#endif // CHROME_BROWSER_UI_VIEWS_SIDEBAR_SIDEBAR_TAB_STRIP_HOST_H_ |
+ |
Property changes on: chrome\browser\ui\views\sidebar\sidebar_tab_strip_host.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |