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

Side by Side Diff: Source/platform/Length.h

Issue 82083002: Move viewport unit resolution to style recalc time (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: rebased.. Created 7 years 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
OLDNEW
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 22 matching lines...) Expand all
33 #include "wtf/Vector.h" 33 #include "wtf/Vector.h"
34 #include <cstring> 34 #include <cstring>
35 35
36 namespace WebCore { 36 namespace WebCore {
37 37
38 enum LengthType { 38 enum LengthType {
39 Auto, Percent, Fixed, 39 Auto, Percent, Fixed,
40 Intrinsic, MinIntrinsic, 40 Intrinsic, MinIntrinsic,
41 MinContent, MaxContent, FillAvailable, FitContent, 41 MinContent, MaxContent, FillAvailable, FitContent,
42 Calculated, 42 Calculated,
43 ViewportPercentageWidth, ViewportPercentageHeight, ViewportPercentageMin, Vi ewportPercentageMax,
44 ExtendToZoom, 43 ExtendToZoom,
45 Undefined 44 Undefined
46 }; 45 };
47 46
48 enum ValueRange { 47 enum ValueRange {
49 ValueRangeAll, 48 ValueRangeAll,
50 ValueRangeNonNegative 49 ValueRangeNonNegative
51 }; 50 };
52 51
53 class CalculationValue; 52 class CalculationValue;
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 221
223 return getFloatValue() < 0; 222 return getFloatValue() < 0;
224 } 223 }
225 224
226 bool isAuto() const { return type() == Auto; } 225 bool isAuto() const { return type() == Auto; }
227 bool isPercent() const { return type() == Percent || type() == Calculated; } 226 bool isPercent() const { return type() == Percent || type() == Calculated; }
228 bool isFixed() const { return type() == Fixed; } 227 bool isFixed() const { return type() == Fixed; }
229 bool isIntrinsicOrAuto() const { return type() == Auto || isLegacyIntrinsic( ) || isIntrinsic(); } 228 bool isIntrinsicOrAuto() const { return type() == Auto || isLegacyIntrinsic( ) || isIntrinsic(); }
230 bool isLegacyIntrinsic() const { return type() == Intrinsic || type() == Min Intrinsic; } 229 bool isLegacyIntrinsic() const { return type() == Intrinsic || type() == Min Intrinsic; }
231 bool isIntrinsic() const { return type() == MinContent || type() == MaxConte nt || type() == FillAvailable || type() == FitContent; } 230 bool isIntrinsic() const { return type() == MinContent || type() == MaxConte nt || type() == FillAvailable || type() == FitContent; }
232 bool isSpecified() const { return type() == Fixed || type() == Percent || ty pe() == Calculated || isViewportPercentage(); } 231 bool isSpecified() const { return type() == Fixed || type() == Percent || ty pe() == Calculated; }
233 bool isSpecifiedOrIntrinsic() const { return isSpecified() || isIntrinsic(); } 232 bool isSpecifiedOrIntrinsic() const { return isSpecified() || isIntrinsic(); }
234 bool isCalculated() const { return type() == Calculated; } 233 bool isCalculated() const { return type() == Calculated; }
235 bool isCalculatedEqual(const Length&) const; 234 bool isCalculatedEqual(const Length&) const;
236 bool isMinContent() const { return type() == MinContent; } 235 bool isMinContent() const { return type() == MinContent; }
237 bool isMaxContent() const { return type() == MaxContent; } 236 bool isMaxContent() const { return type() == MaxContent; }
238 bool isFillAvailable() const { return type() == FillAvailable; } 237 bool isFillAvailable() const { return type() == FillAvailable; }
239 bool isFitContent() const { return type() == FitContent; } 238 bool isFitContent() const { return type() == FitContent; }
240 239
241 Length blend(const Length& from, double progress, ValueRange range) const 240 Length blend(const Length& from, double progress, ValueRange range) const
242 { 241 {
(...skipping 27 matching lines...) Expand all
270 return Length(blendedValue, resultType); 269 return Length(blendedValue, resultType);
271 } 270 }
272 271
273 float getFloatValue() const 272 float getFloatValue() const
274 { 273 {
275 ASSERT(!isUndefined()); 274 ASSERT(!isUndefined());
276 return m_isFloat ? m_floatValue : m_intValue; 275 return m_isFloat ? m_floatValue : m_intValue;
277 } 276 }
278 float nonNanCalculatedValue(int maxValue) const; 277 float nonNanCalculatedValue(int maxValue) const;
279 278
280 bool isViewportPercentage() const
281 {
282 LengthType lengthType = type();
283 return lengthType >= ViewportPercentageWidth && lengthType <= ViewportPe rcentageMax;
284 }
285 float viewportPercentageLength() const
286 {
287 ASSERT(isViewportPercentage());
288 return getFloatValue();
289 }
290 private: 279 private:
291 int getIntValue() const 280 int getIntValue() const
292 { 281 {
293 ASSERT(!isUndefined()); 282 ASSERT(!isUndefined());
294 return m_isFloat ? static_cast<int>(m_floatValue) : m_intValue; 283 return m_isFloat ? static_cast<int>(m_floatValue) : m_intValue;
295 } 284 }
296 void initFromLength(const Length& length) 285 void initFromLength(const Length& length)
297 { 286 {
298 memcpy(this, &length, sizeof(Length)); 287 memcpy(this, &length, sizeof(Length));
299 288
(...skipping 18 matching lines...) Expand all
318 bool m_quirk; 307 bool m_quirk;
319 unsigned char m_type; 308 unsigned char m_type;
320 bool m_isFloat; 309 bool m_isFloat;
321 }; 310 };
322 311
323 PLATFORM_EXPORT Vector<Length> parseHTMLAreaElementCoords(const String&); 312 PLATFORM_EXPORT Vector<Length> parseHTMLAreaElementCoords(const String&);
324 313
325 } // namespace WebCore 314 } // namespace WebCore
326 315
327 #endif // Length_h 316 #endif // Length_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698