| OLD | NEW |
| 1 /* | 1 /* |
| 2 Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 Copyright (C) 2006, 2008 Apple Inc. All rights reserved. | 3 Copyright (C) 2006, 2008 Apple Inc. All rights reserved. |
| 4 Copyright (C) 2011 Rik Cabanier (cabanier@adobe.com) | 4 Copyright (C) 2011 Rik Cabanier (cabanier@adobe.com) |
| 5 Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. | 5 Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. |
| 6 | 6 |
| 7 This library is free software; you can redistribute it and/or | 7 This library is free software; you can redistribute it and/or |
| 8 modify it under the terms of the GNU Library General Public | 8 modify it under the terms of the GNU Library General Public |
| 9 License as published by the Free Software Foundation; either | 9 License as published by the Free Software Foundation; either |
| 10 version 2 of the License, or (at your option) any later version. | 10 version 2 of the License, or (at your option) any later version. |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 float_value_ = static_cast<float>(float_value_ * v); | 134 float_value_ = static_cast<float>(float_value_ * v); |
| 135 else | 135 else |
| 136 int_value_ = static_cast<int>(int_value_ * v); | 136 int_value_ = static_cast<int>(int_value_ * v); |
| 137 | 137 |
| 138 return *this; | 138 return *this; |
| 139 } | 139 } |
| 140 | 140 |
| 141 // FIXME: Make this private (if possible) or at least rename it | 141 // FIXME: Make this private (if possible) or at least rename it |
| 142 // (http://crbug.com/432707). | 142 // (http://crbug.com/432707). |
| 143 inline float Value() const { | 143 inline float Value() const { |
| 144 ASSERT(!IsCalculated()); | 144 DCHECK(!IsCalculated()); |
| 145 return GetFloatValue(); | 145 return GetFloatValue(); |
| 146 } | 146 } |
| 147 | 147 |
| 148 int IntValue() const { | 148 int IntValue() const { |
| 149 if (IsCalculated()) { | 149 if (IsCalculated()) { |
| 150 ASSERT_NOT_REACHED(); | 150 ASSERT_NOT_REACHED(); |
| 151 return 0; | 151 return 0; |
| 152 } | 152 } |
| 153 return GetIntValue(); | 153 return GetIntValue(); |
| 154 } | 154 } |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 | 200 |
| 201 void SetValue(float value) { *this = Length(value, kFixed); } | 201 void SetValue(float value) { *this = Length(value, kFixed); } |
| 202 | 202 |
| 203 bool IsMaxSizeNone() const { return GetType() == kMaxSizeNone; } | 203 bool IsMaxSizeNone() const { return GetType() == kMaxSizeNone; } |
| 204 | 204 |
| 205 // FIXME calc: https://bugs.webkit.org/show_bug.cgi?id=80357. A calculated | 205 // FIXME calc: https://bugs.webkit.org/show_bug.cgi?id=80357. A calculated |
| 206 // Length always contains a percentage, and without a maxValue passed to these | 206 // Length always contains a percentage, and without a maxValue passed to these |
| 207 // functions it's impossible to determine the sign or zero-ness. We assume all | 207 // functions it's impossible to determine the sign or zero-ness. We assume all |
| 208 // calc values are positive and non-zero for now. | 208 // calc values are positive and non-zero for now. |
| 209 bool IsZero() const { | 209 bool IsZero() const { |
| 210 ASSERT(!IsMaxSizeNone()); | 210 DCHECK(!IsMaxSizeNone()); |
| 211 if (IsCalculated()) | 211 if (IsCalculated()) |
| 212 return false; | 212 return false; |
| 213 | 213 |
| 214 return is_float_ ? !float_value_ : !int_value_; | 214 return is_float_ ? !float_value_ : !int_value_; |
| 215 } | 215 } |
| 216 bool IsPositive() const { | 216 bool IsPositive() const { |
| 217 if (IsMaxSizeNone()) | 217 if (IsMaxSizeNone()) |
| 218 return false; | 218 return false; |
| 219 if (IsCalculated()) | 219 if (IsCalculated()) |
| 220 return true; | 220 return true; |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 if (IsZero()) | 273 if (IsZero()) |
| 274 result_type = from.GetType(); | 274 result_type = from.GetType(); |
| 275 | 275 |
| 276 float blended_value = blink::Blend(from.Value(), Value(), progress); | 276 float blended_value = blink::Blend(from.Value(), Value(), progress); |
| 277 if (range == kValueRangeNonNegative) | 277 if (range == kValueRangeNonNegative) |
| 278 blended_value = clampTo<float>(blended_value, 0); | 278 blended_value = clampTo<float>(blended_value, 0); |
| 279 return Length(blended_value, result_type); | 279 return Length(blended_value, result_type); |
| 280 } | 280 } |
| 281 | 281 |
| 282 float GetFloatValue() const { | 282 float GetFloatValue() const { |
| 283 ASSERT(!IsMaxSizeNone()); | 283 DCHECK(!IsMaxSizeNone()); |
| 284 return is_float_ ? float_value_ : int_value_; | 284 return is_float_ ? float_value_ : int_value_; |
| 285 } | 285 } |
| 286 float NonNanCalculatedValue(LayoutUnit max_value) const; | 286 float NonNanCalculatedValue(LayoutUnit max_value) const; |
| 287 | 287 |
| 288 Length SubtractFromOneHundredPercent() const; | 288 Length SubtractFromOneHundredPercent() const; |
| 289 | 289 |
| 290 Length Zoom(double factor) const; | 290 Length Zoom(double factor) const; |
| 291 | 291 |
| 292 private: | 292 private: |
| 293 int GetIntValue() const { | 293 int GetIntValue() const { |
| 294 ASSERT(!IsMaxSizeNone()); | 294 DCHECK(!IsMaxSizeNone()); |
| 295 return is_float_ ? static_cast<int>(float_value_) : int_value_; | 295 return is_float_ ? static_cast<int>(float_value_) : int_value_; |
| 296 } | 296 } |
| 297 | 297 |
| 298 Length BlendMixedTypes(const Length& from, double progress, ValueRange) const; | 298 Length BlendMixedTypes(const Length& from, double progress, ValueRange) const; |
| 299 | 299 |
| 300 int CalculationHandle() const { | 300 int CalculationHandle() const { |
| 301 ASSERT(IsCalculated()); | 301 DCHECK(IsCalculated()); |
| 302 return GetIntValue(); | 302 return GetIntValue(); |
| 303 } | 303 } |
| 304 void IncrementCalculatedRef() const; | 304 void IncrementCalculatedRef() const; |
| 305 void DecrementCalculatedRef() const; | 305 void DecrementCalculatedRef() const; |
| 306 | 306 |
| 307 union { | 307 union { |
| 308 int int_value_; | 308 int int_value_; |
| 309 float float_value_; | 309 float float_value_; |
| 310 }; | 310 }; |
| 311 bool quirk_; | 311 bool quirk_; |
| 312 unsigned char type_; | 312 unsigned char type_; |
| 313 bool is_float_; | 313 bool is_float_; |
| 314 }; | 314 }; |
| 315 | 315 |
| 316 } // namespace blink | 316 } // namespace blink |
| 317 | 317 |
| 318 #endif // Length_h | 318 #endif // Length_h |
| OLD | NEW |