• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_CONTENTS_RESIZING_STRATEGY_H_
6 #define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_CONTENTS_RESIZING_STRATEGY_H_
7 
8 #include "base/basictypes.h"
9 #include "ui/gfx/insets.h"
10 #include "ui/gfx/rect.h"
11 #include "ui/gfx/size.h"
12 
13 // This class knows how to resize both DevTools and inspected WebContents
14 // inside a browser window hierarchy.
15 class DevToolsContentsResizingStrategy {
16  public:
17   DevToolsContentsResizingStrategy();
18   explicit DevToolsContentsResizingStrategy(
19       const gfx::Rect& bounds);
20 
21   void CopyFrom(const DevToolsContentsResizingStrategy& strategy);
22   bool Equals(const DevToolsContentsResizingStrategy& strategy);
23 
bounds()24   const gfx::Rect& bounds() const { return bounds_; }
hide_inspected_contents()25   bool hide_inspected_contents() const { return hide_inspected_contents_; }
26 
27  private:
28   // Contents bounds. When non-empty, used instead of insets.
29   gfx::Rect bounds_;
30 
31   // Determines whether inspected contents is visible.
32   bool hide_inspected_contents_;
33 
34   DISALLOW_COPY_AND_ASSIGN(DevToolsContentsResizingStrategy);
35 };
36 
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
41 // is allowed.
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);
47 
48 #endif  // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_CONTENTS_RESIZING_STRATEGY_H_
49