contents_layout_manager.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2013 The Chromium Authors. All rights reserved. 25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be 35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file. 45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_CONTENTS_LAYOUT_MANAGER_H_ 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define CHROME_BROWSER_UI_VIEWS_FRAME_CONTENTS_LAYOUT_MANAGER_H_ 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/basictypes.h" 95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "base/compiler_specific.h" 105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "chrome/browser/devtools/devtools_contents_resizing_strategy.h" 115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "ui/views/layout/layout_manager.h" 125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// ContentsLayoutManager positions the WebContents and devtools WebContents. 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass ContentsLayoutManager : public views::LayoutManager { 1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) public: 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ContentsLayoutManager(views::View* devtools_view, views::View* contents_view); 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu virtual ~ContentsLayoutManager(); 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu // Sets the active top margin; both devtools_view and contents_view will be 205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu // pushed down vertically by |margin|. 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void SetActiveTopMargin(int margin); 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Sets the contents resizing strategy. 245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) void SetContentsResizingStrategy( 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const DevToolsContentsResizingStrategy& strategy); 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // views::LayoutManager overrides: 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void Layout(views::View* host) OVERRIDE; 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual gfx::Size GetPreferredSize(views::View* host) OVERRIDE; 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void Installed(views::View* host) OVERRIDE; 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu virtual void Uninstalled(views::View* host) OVERRIDE; 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu private: 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu views::View* devtools_view_; 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu views::View* contents_view_; 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch views::View* host_; 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DevToolsContentsResizingStrategy strategy_; 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch int active_top_margin_; 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DISALLOW_COPY_AND_ASSIGN(ContentsLayoutManager); 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#endif // CHROME_BROWSER_UI_VIEWS_FRAME_CONTENTS_LAYOUT_MANAGER_H_ 465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu