| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 /** Representations of CSS styles. */ | 5 /** Representations of CSS styles. */ |
| 6 | 6 |
| 7 part of csslib.parser; | 7 part of csslib.parser; |
| 8 | 8 |
| 9 // TODO(terry): Prune down this file we do need some of the code in this file | 9 // TODO(terry): Prune down this file we do need some of the code in this file |
| 10 // for darker, lighter, how to represent a Font, etc but alot of | 10 // for darker, lighter, how to represent a Font, etc but alot of |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 int g = Color.hexToInt(_argb.substring(nextIndex, nextIndex + 2)); | 177 int g = Color.hexToInt(_argb.substring(nextIndex, nextIndex + 2)); |
| 178 nextIndex += 2; | 178 nextIndex += 2; |
| 179 int b = Color.hexToInt(_argb.substring(nextIndex, nextIndex + 2)); | 179 int b = Color.hexToInt(_argb.substring(nextIndex, nextIndex + 2)); |
| 180 return new Rgba(r, g, b, a); | 180 return new Rgba(r, g, b, a); |
| 181 } | 181 } |
| 182 | 182 |
| 183 Hsla get hsla => new Hsla.fromRgba(rgba); | 183 Hsla get hsla => new Hsla.fromRgba(rgba); |
| 184 | 184 |
| 185 int get argbValue => Color.hexToInt(_argb); | 185 int get argbValue => Color.hexToInt(_argb); |
| 186 | 186 |
| 187 bool operator ==(Object other) => Color.equal(this, other); | 187 bool operator ==(other) => Color.equal(this, other); |
| 188 | 188 |
| 189 String toHexArgbString() => _argb; | 189 String toHexArgbString() => _argb; |
| 190 | 190 |
| 191 Color darker(num amount) { | 191 Color darker(num amount) { |
| 192 Rgba newRgba = Color._createNewTintShadeFromRgba(rgba, -amount); | 192 Rgba newRgba = Color._createNewTintShadeFromRgba(rgba, -amount); |
| 193 return new Color.hex("${newRgba.toHexArgbString()}"); | 193 return new Color.hex("${newRgba.toHexArgbString()}"); |
| 194 } | 194 } |
| 195 | 195 |
| 196 Color lighter(num amount) { | 196 Color lighter(num amount) { |
| 197 Rgba newRgba = Color._createNewTintShadeFromRgba(rgba, amount); | 197 Rgba newRgba = Color._createNewTintShadeFromRgba(rgba, amount); |
| 198 return new Color.hex("${newRgba.toHexArgbString()}"); | 198 return new Color.hex("${newRgba.toHexArgbString()}"); |
| 199 } | 199 } |
| 200 | 200 |
| 201 static bool equal(ColorBase curr, Object other) { | 201 static bool equal(ColorBase curr, other) { |
| 202 if (other is Color) { | 202 if (other is Color) { |
| 203 Color o = other; | 203 Color o = other; |
| 204 return o.toHexArgbString() == curr.toHexArgbString(); | 204 return o.toHexArgbString() == curr.toHexArgbString(); |
| 205 } else if (other is Rgba) { | 205 } else if (other is Rgba) { |
| 206 Rgba rgb = other; | 206 Rgba rgb = other; |
| 207 return rgb.toHexArgbString() == curr.toHexArgbString(); | 207 return rgb.toHexArgbString() == curr.toHexArgbString(); |
| 208 } else if (other is Hsla) { | 208 } else if (other is Hsla) { |
| 209 Hsla hsla = other; | 209 Hsla hsla = other; |
| 210 return hsla.toHexArgbString() == curr.toHexArgbString(); | 210 return hsla.toHexArgbString() == curr.toHexArgbString(); |
| 211 } else { | 211 } else { |
| (...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 594 return v2; | 594 return v2; |
| 595 } | 595 } |
| 596 | 596 |
| 597 if ((3 * vH) < 2) { | 597 if ((3 * vH) < 2) { |
| 598 return (v1 + (v2 - v1) * ((2 / 3 - vH) * 6)); | 598 return (v1 + (v2 - v1) * ((2 / 3 - vH) * 6)); |
| 599 } | 599 } |
| 600 | 600 |
| 601 return v1; | 601 return v1; |
| 602 } | 602 } |
| 603 | 603 |
| 604 bool operator ==(Object other) => Color.equal(this, other); | 604 bool operator ==(other) => Color.equal(this, other); |
| 605 | 605 |
| 606 String get cssExpression { | 606 String get cssExpression { |
| 607 if (a == null) { | 607 if (a == null) { |
| 608 return "#${Color.convertToHexString(r, g, b)}"; | 608 return "#${Color.convertToHexString(r, g, b)}"; |
| 609 } else { | 609 } else { |
| 610 return "rgba($r,$g,$b,$a)"; | 610 return "rgba($r,$g,$b,$a)"; |
| 611 } | 611 } |
| 612 } | 612 } |
| 613 | 613 |
| 614 String toHexArgbString() => Color.convertToHexString(r, g, b, a); | 614 String toHexArgbString() => Color.convertToHexString(r, g, b, a); |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 756 /** | 756 /** |
| 757 * Returns number as percentage 0..100. | 757 * Returns number as percentage 0..100. |
| 758 */ | 758 */ |
| 759 num get lightnessPercentage => (_l * 100).round(); | 759 num get lightnessPercentage => (_l * 100).round(); |
| 760 | 760 |
| 761 /** | 761 /** |
| 762 * Returns number as 0..1 | 762 * Returns number as 0..1 |
| 763 */ | 763 */ |
| 764 num get alpha => _a; | 764 num get alpha => _a; |
| 765 | 765 |
| 766 bool operator ==(Object other) => Color.equal(this, other); | 766 bool operator ==(other) => Color.equal(this, other); |
| 767 | 767 |
| 768 String get cssExpression => (_a == null) ? | 768 String get cssExpression => (_a == null) ? |
| 769 "hsl($hueDegrees,$saturationPercentage,$lightnessPercentage)" : | 769 "hsl($hueDegrees,$saturationPercentage,$lightnessPercentage)" : |
| 770 "hsla($hueDegrees,$saturationPercentage,$lightnessPercentage,$_a)"; | 770 "hsla($hueDegrees,$saturationPercentage,$lightnessPercentage,$_a)"; |
| 771 | 771 |
| 772 String toHexArgbString() => new Rgba.fromHsla(this).toHexArgbString(); | 772 String toHexArgbString() => new Rgba.fromHsla(this).toHexArgbString(); |
| 773 | 773 |
| 774 int get argbValue => Color.hexToInt(this.toHexArgbString()); | 774 int get argbValue => Color.hexToInt(this.toHexArgbString()); |
| 775 | 775 |
| 776 Color get color => new Color.createHsla(_h, _s, _l, _a); | 776 Color get color => new Color.createHsla(_h, _s, _l, _a); |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1092 } else { | 1092 } else { |
| 1093 return (size != null) ? size * 1.2 : null; | 1093 return (size != null) ? size * 1.2 : null; |
| 1094 } | 1094 } |
| 1095 } | 1095 } |
| 1096 | 1096 |
| 1097 int get hashCode { | 1097 int get hashCode { |
| 1098 // TODO(jimhug): Lot's of potential collisions here. List of fonts, etc. | 1098 // TODO(jimhug): Lot's of potential collisions here. List of fonts, etc. |
| 1099 return size.toInt() % family[0].hashCode; | 1099 return size.toInt() % family[0].hashCode; |
| 1100 } | 1100 } |
| 1101 | 1101 |
| 1102 bool operator ==(Object other) { | 1102 bool operator ==(other) { |
| 1103 if (other is! Font) return false; | 1103 if (other is! Font) return false; |
| 1104 Font o = other; | 1104 Font o = other; |
| 1105 return o.size == size && o.family == family && o.weight == weight && | 1105 return o.size == size && o.family == family && o.weight == weight && |
| 1106 o.lineHeight == lineHeight && o.style == style && o.variant == variant; | 1106 o.lineHeight == lineHeight && o.style == style && o.variant == variant; |
| 1107 } | 1107 } |
| 1108 | 1108 |
| 1109 // TODO(terry): This is fragile should probably just iterate through the list | 1109 // TODO(terry): This is fragile should probably just iterate through the list |
| 1110 // of fonts construction the font-family string. | 1110 // of fonts construction the font-family string. |
| 1111 /** Return fonts as a comma seperated list sans the square brackets. */ | 1111 /** Return fonts as a comma seperated list sans the square brackets. */ |
| 1112 String get _fontsAsString { | 1112 String get _fontsAsString { |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1214 num get width => (left != null ? left : 0) + (right != null ? right : 0); | 1214 num get width => (left != null ? left : 0) + (right != null ? right : 0); |
| 1215 | 1215 |
| 1216 /** | 1216 /** |
| 1217 * The total size of the vertical edges. Equal to [top] + [bottom], where | 1217 * The total size of the vertical edges. Equal to [top] + [bottom], where |
| 1218 * null is interpreted as 0px. | 1218 * null is interpreted as 0px. |
| 1219 */ | 1219 */ |
| 1220 num get height => (top != null ? top : 0) + (bottom != null ? bottom : 0); | 1220 num get height => (top != null ? top : 0) + (bottom != null ? bottom : 0); |
| 1221 } | 1221 } |
| 1222 | 1222 |
| 1223 _mergeVal(x, y) => y != null ? y : x; | 1223 _mergeVal(x, y) => y != null ? y : x; |
| OLD | NEW |