Home | History | Annotate | Download | only in devtools
      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 
     24   const gfx::Rect& bounds() const { return bounds_; }
     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