1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_UI_VIEWS_FRAME_CONTENTS_LAYOUT_MANAGER_H_ 6 #define CHROME_BROWSER_UI_VIEWS_FRAME_CONTENTS_LAYOUT_MANAGER_H_ 7 8 #include "base/basictypes.h" 9 #include "base/compiler_specific.h" 10 #include "chrome/browser/devtools/devtools_contents_resizing_strategy.h" 11 #include "ui/views/layout/layout_manager.h" 12 13 // ContentsLayoutManager positions the WebContents and devtools WebContents. 14 class ContentsLayoutManager : public views::LayoutManager { 15 public: 16 ContentsLayoutManager(views::View* devtools_view, views::View* contents_view); 17 virtual ~ContentsLayoutManager(); 18 19 // Sets the active top margin; both devtools_view and contents_view will be 20 // pushed down vertically by |margin|. 21 void SetActiveTopMargin(int margin); 22 23 // Sets the contents resizing strategy. 24 void SetContentsResizingStrategy( 25 const DevToolsContentsResizingStrategy& strategy); 26 27 // views::LayoutManager overrides: 28 virtual void Layout(views::View* host) OVERRIDE; 29 virtual gfx::Size GetPreferredSize(const views::View* host) const OVERRIDE; 30 virtual void Installed(views::View* host) OVERRIDE; 31 virtual void Uninstalled(views::View* host) OVERRIDE; 32 33 private: 34 views::View* devtools_view_; 35 views::View* contents_view_; 36 37 views::View* host_; 38 39 DevToolsContentsResizingStrategy strategy_; 40 int active_top_margin_; 41 42 DISALLOW_COPY_AND_ASSIGN(ContentsLayoutManager); 43 }; 44 45 #endif // CHROME_BROWSER_UI_VIEWS_FRAME_CONTENTS_LAYOUT_MANAGER_H_ 46