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

Unified Diff: chrome/browser/ui/views/sidebar/sidebar_tab_strip_host.h

Issue 6250141: Sidebar mini tabs UI (views version).... Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 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
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

Powered by Google App Engine
This is Rietveld 408576698