Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(280)

Side by Side Diff: chrome/browser/devtools/devtools_contents_resizing_strategy.cc

Issue 137483007: [DevTools] Use special resizing strategy instead of insets. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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 #include "chrome/browser/devtools/devtools_contents_resizing_strategy.h"
6 #include <cstdio>
7
8 DevToolsContentsResizingStrategy::DevToolsContentsResizingStrategy() {
9 }
10
11 DevToolsContentsResizingStrategy::DevToolsContentsResizingStrategy(
12 gfx::Insets insets, gfx::Size min_size)
13 : insets_(insets),
14 min_size_(min_size) {
15 }
16
17 void DevToolsContentsResizingStrategy::Apply(
18 const gfx::Size& container_size,
19 const gfx::Rect& old_devtools_bounds,
20 const gfx::Rect& old_contents_bounds,
21 gfx::Rect* new_devtools_bounds,
22 gfx::Rect* new_contents_bounds) {
23 new_devtools_bounds->SetRect(
24 0, 0, container_size.width(), container_size.height());
25
26 int width = std::max(0, container_size.width() - insets_.width());
27 int left = insets_.left();
28 if (width < min_size_.width() && insets_.width() > 0) {
29 int min_width = std::min(min_size_.width(), container_size.width());
30 int insets_width = container_size.width() - min_width;
31 int insets_decrease = insets_.width() - insets_width;
32 // Decrease both left and right insets proportionally.
33 left -= insets_decrease * insets_.left() / insets_.width();
34 width = min_width;
35 }
36 left = std::max(0, std::min(container_size.width(), left));
37
38 int height = std::max(0, container_size.height() - insets_.height());
39 int top = insets_.top();
40 if (height < min_size_.height() && insets_.height() > 0) {
41 int min_height = std::min(min_size_.height(), container_size.height());
42 int insets_height = container_size.height() - min_height;
43 int insets_decrease = insets_.height() - insets_height;
44 // Decrease both top and bottom insets proportionally.
45 top -= insets_decrease * insets_.top() / insets_.height();
46 height = min_height;
47 }
48 top = std::max(0, std::min(container_size.height(), top));
49
50 new_contents_bounds->SetRect(left, top, width, height);
51 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698