| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 html; | 5 part of html; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * A rectangle representing all the content of the element in the | 8 * A rectangle representing all the content of the element in the |
| 9 * [box model](http://www.w3.org/TR/CSS2/box.html). | 9 * [box model](http://www.w3.org/TR/CSS2/box.html). |
| 10 */ | 10 */ |
| 11 class _ContentCssRect extends CssRect { | 11 class _ContentCssRect extends CssRect { |
| 12 | 12 |
| 13 _ContentCssRect(element) : super(element); | 13 _ContentCssRect(element) : super(element); |
| 14 | 14 |
| 15 num get height => _element.offsetHeight + | 15 num get height => _element.offsetHeight + |
| 16 _addOrSubtractToBoxModel(_HEIGHT, _CONTENT); | 16 _addOrSubtractToBoxModel(_HEIGHT, _CONTENT); |
| 17 | 17 |
| 18 num get width => _element.offsetWidth + | 18 num get width => _element.offsetWidth + |
| 19 _addOrSubtractToBoxModel(_WIDTH, _CONTENT); | 19 _addOrSubtractToBoxModel(_WIDTH, _CONTENT); |
| 20 | 20 |
| 21 /** | 21 /** |
| 22 * Set the height to `newHeight`. | 22 * Set the height to `newHeight`. |
| 23 * | 23 * |
| 24 * newHeight can be either a [num] representing the height in pixels or a | 24 * newHeight can be either a [num] representing the height in pixels or a |
| 25 * [Dimension] object. Values of newHeight that are less than zero are | 25 * [Dimension] object. Values of newHeight that are less than zero are |
| 26 * converted to effectively setting the height to 0. This is equivalent to the | 26 * converted to effectively setting the height to 0. This is equivalent to the |
| 27 * `height` function in jQuery and the calculated `height` CSS value, | 27 * `height` function in jQuery and the calculated `height` CSS value, |
| 28 * converted to a num in pixels. | 28 * converted to a num in pixels. |
| 29 */ | 29 */ |
| 30 set height(newHeight) { | 30 void set height(newHeight) { |
| 31 if (newHeight is Dimension) { | 31 if (newHeight is Dimension) { |
| 32 if (newHeight.value < 0) newHeight = new Dimension.px(0); | 32 if (newHeight.value < 0) newHeight = new Dimension.px(0); |
| 33 _element.style.height = newHeight.toString(); | 33 _element.style.height = newHeight.toString(); |
| 34 } else { | 34 } else { |
| 35 if (newHeight < 0) newHeight = 0; | 35 if (newHeight < 0) newHeight = 0; |
| 36 _element.style.height = '${newHeight}px'; | 36 _element.style.height = '${newHeight}px'; |
| 37 } | 37 } |
| 38 } | 38 } |
| 39 | 39 |
| 40 /** | 40 /** |
| 41 * Set the current computed width in pixels of this element. | 41 * Set the current computed width in pixels of this element. |
| 42 * | 42 * |
| 43 * newWidth can be either a [num] representing the width in pixels or a | 43 * newWidth can be either a [num] representing the width in pixels or a |
| 44 * [Dimension] object. This is equivalent to the `width` function in jQuery | 44 * [Dimension] object. This is equivalent to the `width` function in jQuery |
| 45 * and the calculated | 45 * and the calculated |
| 46 * `width` CSS value, converted to a dimensionless num in pixels. | 46 * `width` CSS value, converted to a dimensionless num in pixels. |
| 47 */ | 47 */ |
| 48 set width(newWidth) { | 48 void set width(newWidth) { |
| 49 if (newWidth is Dimension) { | 49 if (newWidth is Dimension) { |
| 50 if (newWidth.value < 0) newWidth = new Dimension.px(0); | 50 if (newWidth.value < 0) newWidth = new Dimension.px(0); |
| 51 _element.style.width = newWidth.toString(); | 51 _element.style.width = newWidth.toString(); |
| 52 } else { | 52 } else { |
| 53 if (newWidth < 0) newWidth = 0; | 53 if (newWidth < 0) newWidth = 0; |
| 54 _element.style.width = '${newWidth}px'; | 54 _element.style.width = '${newWidth}px'; |
| 55 } | 55 } |
| 56 } | 56 } |
| 57 | 57 |
| 58 num get left => _element.getBoundingClientRect().left - | 58 num get left => _element.getBoundingClientRect().left - |
| (...skipping 14 matching lines...) Expand all Loading... |
| 73 } | 73 } |
| 74 | 74 |
| 75 /** | 75 /** |
| 76 * Set the height to `newHeight`. | 76 * Set the height to `newHeight`. |
| 77 * | 77 * |
| 78 * Values of newHeight that are less than zero are converted to effectively | 78 * Values of newHeight that are less than zero are converted to effectively |
| 79 * setting the height to 0. This is equivalent to the `height` | 79 * setting the height to 0. This is equivalent to the `height` |
| 80 * function in jQuery and the calculated `height` CSS value, converted to a | 80 * function in jQuery and the calculated `height` CSS value, converted to a |
| 81 * num in pixels. | 81 * num in pixels. |
| 82 */ | 82 */ |
| 83 set height(newHeight) { | 83 void set height(newHeight) { |
| 84 _elementList.forEach((e) => e.contentEdge.height = newHeight); | 84 _elementList.forEach((e) => e.contentEdge.height = newHeight); |
| 85 } | 85 } |
| 86 | 86 |
| 87 /** | 87 /** |
| 88 * Set the current computed width in pixels of this element. | 88 * Set the current computed width in pixels of this element. |
| 89 * | 89 * |
| 90 * This is equivalent to the `width` function in jQuery and the calculated | 90 * This is equivalent to the `width` function in jQuery and the calculated |
| 91 * `width` CSS value, converted to a dimensionless num in pixels. | 91 * `width` CSS value, converted to a dimensionless num in pixels. |
| 92 */ | 92 */ |
| 93 set width(newWidth) { | 93 void set width(newWidth) { |
| 94 _elementList.forEach((e) => e.contentEdge.width = newWidth); | 94 _elementList.forEach((e) => e.contentEdge.width = newWidth); |
| 95 } | 95 } |
| 96 } | 96 } |
| 97 | 97 |
| 98 /** | 98 /** |
| 99 * A rectangle representing the dimensions of the space occupied by the | 99 * A rectangle representing the dimensions of the space occupied by the |
| 100 * element's content + padding in the | 100 * element's content + padding in the |
| 101 * [box model](http://www.w3.org/TR/CSS2/box.html). | 101 * [box model](http://www.w3.org/TR/CSS2/box.html). |
| 102 */ | 102 */ |
| 103 class _PaddingCssRect extends CssRect { | 103 class _PaddingCssRect extends CssRect { |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 * Set the height to `newHeight`. | 190 * Set the height to `newHeight`. |
| 191 * | 191 * |
| 192 * newHeight can be either a [num] representing the height in pixels or a | 192 * newHeight can be either a [num] representing the height in pixels or a |
| 193 * [Dimension] object. Values of newHeight that are less than zero are | 193 * [Dimension] object. Values of newHeight that are less than zero are |
| 194 * converted to effectively setting the height to 0. This is equivalent to the | 194 * converted to effectively setting the height to 0. This is equivalent to the |
| 195 * `height` function in jQuery and the calculated `height` CSS value, | 195 * `height` function in jQuery and the calculated `height` CSS value, |
| 196 * converted to a num in pixels. | 196 * converted to a num in pixels. |
| 197 * | 197 * |
| 198 * Note that only the content height can actually be set via this method. | 198 * Note that only the content height can actually be set via this method. |
| 199 */ | 199 */ |
| 200 set height(newHeight) { | 200 void set height(newHeight) { |
| 201 throw new UnsupportedError("Can only set height for content rect."); | 201 throw new UnsupportedError("Can only set height for content rect."); |
| 202 } | 202 } |
| 203 | 203 |
| 204 /** | 204 /** |
| 205 * Set the current computed width in pixels of this element. | 205 * Set the current computed width in pixels of this element. |
| 206 * | 206 * |
| 207 * newWidth can be either a [num] representing the width in pixels or a | 207 * newWidth can be either a [num] representing the width in pixels or a |
| 208 * [Dimension] object. This is equivalent to the `width` function in jQuery | 208 * [Dimension] object. This is equivalent to the `width` function in jQuery |
| 209 * and the calculated | 209 * and the calculated |
| 210 * `width` CSS value, converted to a dimensionless num in pixels. | 210 * `width` CSS value, converted to a dimensionless num in pixels. |
| 211 * | 211 * |
| 212 * Note that only the content width can be set via this method. | 212 * Note that only the content width can be set via this method. |
| 213 */ | 213 */ |
| 214 set width(newWidth) { | 214 void set width(newWidth) { |
| 215 throw new UnsupportedError("Can only set width for content rect."); | 215 throw new UnsupportedError("Can only set width for content rect."); |
| 216 } | 216 } |
| 217 | 217 |
| 218 /** | 218 /** |
| 219 * Return a value that is used to modify the initial height or width | 219 * Return a value that is used to modify the initial height or width |
| 220 * measurement of an element. Depending on the value (ideally an enum) passed | 220 * measurement of an element. Depending on the value (ideally an enum) passed |
| 221 * to augmentingMeasurement, we may need to add or subtract margin, padding, | 221 * to augmentingMeasurement, we may need to add or subtract margin, padding, |
| 222 * or border values, depending on the measurement we're trying to obtain. | 222 * or border values, depending on the measurement we're trying to obtain. |
| 223 */ | 223 */ |
| 224 num _addOrSubtractToBoxModel(List<String> dimensions, | 224 num _addOrSubtractToBoxModel(List<String> dimensions, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 253 } | 253 } |
| 254 return val; | 254 return val; |
| 255 } | 255 } |
| 256 } | 256 } |
| 257 | 257 |
| 258 final _HEIGHT = ['top', 'bottom']; | 258 final _HEIGHT = ['top', 'bottom']; |
| 259 final _WIDTH = ['right', 'left']; | 259 final _WIDTH = ['right', 'left']; |
| 260 final _CONTENT = 'content'; | 260 final _CONTENT = 'content'; |
| 261 final _PADDING = 'padding'; | 261 final _PADDING = 'padding'; |
| 262 final _MARGIN = 'margin'; | 262 final _MARGIN = 'margin'; |
| OLD | NEW |