1 // Copyright 2014 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.
5 #ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_CONTENTS_RESIZING_STRATEGY_H_
6 #define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_CONTENTS_RESIZING_STRATEGY_H_
8 #include "base/basictypes.h"
9 #include "ui/gfx/geometry/insets.h"
10 #include "ui/gfx/geometry/rect.h"
11 #include "ui/gfx/geometry/size.h"
13 // This class knows how to resize both DevTools and inspected WebContents
14 // inside a browser window hierarchy.
15 class DevToolsContentsResizingStrategy
{
17 DevToolsContentsResizingStrategy();
18 explicit DevToolsContentsResizingStrategy(
19 const gfx::Rect
& bounds
);
21 void CopyFrom(const DevToolsContentsResizingStrategy
& strategy
);
22 bool Equals(const DevToolsContentsResizingStrategy
& strategy
);
24 const gfx::Rect
& bounds() const { return bounds_
; }
25 bool hide_inspected_contents() const { return hide_inspected_contents_
; }
28 // Contents bounds. When non-empty, used instead of insets.
31 // Determines whether inspected contents is visible.
32 bool hide_inspected_contents_
;
34 DISALLOW_COPY_AND_ASSIGN(DevToolsContentsResizingStrategy
);
37 // Applies contents resizing strategy, producing bounds for devtools and
38 // page contents views. Generally, page contents view is placed atop of devtools
39 // inside a common parent view, which size should be passed in |container_size|.
40 // When unknown, providing empty rect as previous devtools and contents bounds
42 void ApplyDevToolsContentsResizingStrategy(
43 const DevToolsContentsResizingStrategy
& strategy
,
44 const gfx::Size
& container_size
,
45 gfx::Rect
* new_devtools_bounds
,
46 gfx::Rect
* new_contents_bounds
);
48 #endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_CONTENTS_RESIZING_STRATEGY_H_