OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of base; | 5 part of base; |
6 | 6 |
7 /** | 7 /** |
8 * A utility class for representing two-dimensional sizes. | 8 * A utility class for representing two-dimensional sizes. |
9 */ | 9 */ |
10 class Size { | 10 class Size { |
11 num width; | 11 num width; |
12 num height; | 12 num height; |
13 | 13 |
14 Size(num this.width, num this.height) { | 14 Size(num this.width, num this.height) {} |
15 } | |
16 | 15 |
17 bool operator ==(Size other) { | 16 bool operator ==(Size other) { |
18 return other != null && width == other.width && height == other.height; | 17 return other != null && width == other.width && height == other.height; |
19 } | 18 } |
20 | 19 |
21 int get hashCode => throw new UnimplementedError(); | 20 int get hashCode => throw new UnimplementedError(); |
22 | 21 |
23 /** | 22 /** |
24 * Returns the area of the size (width * height). | 23 * Returns the area of the size (width * height). |
25 */ | 24 */ |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 } | 119 } |
121 | 120 |
122 /** | 121 /** |
123 * Uniformly scales the size to fit inside the dimensions of a given size. The | 122 * Uniformly scales the size to fit inside the dimensions of a given size. The |
124 * original aspect ratio will be preserved. | 123 * original aspect ratio will be preserved. |
125 * | 124 * |
126 * This function assumes that both Sizes contain strictly positive dimensions. | 125 * This function assumes that both Sizes contain strictly positive dimensions. |
127 * Returns this Size object, after optional scaling. | 126 * Returns this Size object, after optional scaling. |
128 */ | 127 */ |
129 Size scaleToFit(Size target) { | 128 Size scaleToFit(Size target) { |
130 num s = aspectRatio() > target.aspectRatio() ? | 129 num s = aspectRatio() > target.aspectRatio() |
131 target.width / width : target.height / height; | 130 ? target.width / width |
| 131 : target.height / height; |
132 return scale(s); | 132 return scale(s); |
133 } | 133 } |
134 | 134 |
135 /** | 135 /** |
136 * Returns a nice string representing size. | 136 * Returns a nice string representing size. |
137 * Returns in the form (50 x 73). | 137 * Returns in the form (50 x 73). |
138 */ | 138 */ |
139 String toString() { | 139 String toString() { |
140 return "(${width} x ${height})"; | 140 return "(${width} x ${height})"; |
141 } | 141 } |
142 } | 142 } |
OLD | NEW |