[Metrics] Make MetricsStateManager take a callback param to check if UMA is enabled.
[chromium-blink-merge.git] / chrome / browser / devtools / devtools_contents_resizing_strategy.h
bloba1e687cdd42089bdc2506c93d18f3b82755c7d77
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/insets.h"
10 #include "ui/gfx/rect.h"
11 #include "ui/gfx/size.h"
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 DevToolsContentsResizingStrategy(
19 const gfx::Insets& insets,
20 const gfx::Size& min_size);
21 explicit DevToolsContentsResizingStrategy(const gfx::Rect& bounds);
23 void CopyFrom(const DevToolsContentsResizingStrategy& strategy);
24 bool Equals(const DevToolsContentsResizingStrategy& strategy);
26 const gfx::Insets& insets() const { return insets_; }
27 const gfx::Size& min_size() const { return min_size_; }
28 const gfx::Rect& bounds() const { return bounds_; }
30 private:
31 // Insets of contents inside DevTools.
32 gfx::Insets insets_;
34 // Minimum size of contents.
35 gfx::Size min_size_;
37 // Contents bounds. When non-empty, used instead of insets.
38 gfx::Rect bounds_;
40 DISALLOW_COPY_AND_ASSIGN(DevToolsContentsResizingStrategy);
43 // Applies contents resizing strategy, producing bounds for devtools and
44 // page contents views. Generally, page contents view is placed atop of devtools
45 // inside a common parent view, which size should be passed in |container_size|.
46 // When unknown, providing empty rect as previous devtools and contents bounds
47 // is allowed.
48 void ApplyDevToolsContentsResizingStrategy(
49 const DevToolsContentsResizingStrategy& strategy,
50 const gfx::Size& container_size,
51 const gfx::Rect& old_devtools_bounds,
52 const gfx::Rect& old_contents_bounds,
53 gfx::Rect* new_devtools_bounds,
54 gfx::Rect* new_contents_bounds);
56 #endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_CONTENTS_RESIZING_STRATEGY_H_