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

Side by Side Diff: extensions/browser/app_window/size_constraints.cc

Issue 616253002: Extract NativeAppWindow from src/extensions Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: might fix athena. similarity=33 Created 6 years, 2 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
« no previous file with comments | « extensions/browser/app_window/size_constraints.h ('k') | extensions/common/DEPS » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "extensions/browser/app_window/size_constraints.h"
6
7 #include <algorithm>
8
9 #include "ui/gfx/insets.h"
10
11 namespace extensions {
12
13 SizeConstraints::SizeConstraints()
14 : maximum_size_(kUnboundedSize, kUnboundedSize) {}
15
16 SizeConstraints::SizeConstraints(const gfx::Size& min_size,
17 const gfx::Size& max_size)
18 : minimum_size_(min_size), maximum_size_(max_size) {}
19
20 SizeConstraints::~SizeConstraints() {}
21
22 // static
23 gfx::Size SizeConstraints::AddFrameToConstraints(
24 const gfx::Size& size_constraints,
25 const gfx::Insets& frame_insets) {
26 return gfx::Size(
27 size_constraints.width() == kUnboundedSize
28 ? kUnboundedSize
29 : size_constraints.width() + frame_insets.width(),
30 size_constraints.height() == kUnboundedSize
31 ? kUnboundedSize
32 : size_constraints.height() + frame_insets.height());
33 }
34
35 gfx::Size SizeConstraints::ClampSize(gfx::Size size) const {
36 const gfx::Size max_size = GetMaximumSize();
37 if (max_size.width() != kUnboundedSize)
38 size.set_width(std::min(size.width(), max_size.width()));
39 if (max_size.height() != kUnboundedSize)
40 size.set_height(std::min(size.height(), max_size.height()));
41 size.SetToMax(GetMinimumSize());
42 return size;
43 }
44
45 bool SizeConstraints::HasMinimumSize() const {
46 const gfx::Size min_size = GetMinimumSize();
47 return min_size.width() != kUnboundedSize ||
48 min_size.height() != kUnboundedSize;
49 }
50
51 bool SizeConstraints::HasMaximumSize() const {
52 const gfx::Size max_size = GetMaximumSize();
53 return max_size.width() != kUnboundedSize ||
54 max_size.height() != kUnboundedSize;
55 }
56
57 bool SizeConstraints::HasFixedSize() const {
58 return !GetMinimumSize().IsEmpty() && GetMinimumSize() == GetMaximumSize();
59 }
60
61 gfx::Size SizeConstraints::GetMinimumSize() const {
62 return minimum_size_;
63 }
64
65 gfx::Size SizeConstraints::GetMaximumSize() const {
66 return gfx::Size(
67 maximum_size_.width() == kUnboundedSize
68 ? kUnboundedSize
69 : std::max(maximum_size_.width(), minimum_size_.width()),
70 maximum_size_.height() == kUnboundedSize
71 ? kUnboundedSize
72 : std::max(maximum_size_.height(), minimum_size_.height()));
73 }
74
75 void SizeConstraints::set_minimum_size(const gfx::Size& min_size) {
76 minimum_size_ = min_size;
77 }
78
79 void SizeConstraints::set_maximum_size(const gfx::Size& max_size) {
80 maximum_size_ = max_size;
81 }
82
83 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/app_window/size_constraints.h ('k') | extensions/common/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698