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

Side by Side Diff: third_party/WebKit/Source/core/css/cssom/CSSSimpleLength.h

Issue 1949343002: [Obsolete] Typed CSSOM: Prefix LengthValue, CalcLength and SimpleLength with "CSS" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rename layout test files Created 4 years, 7 months 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
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CSSSimpleLength_h
6 #define CSSSimpleLength_h
7
8 #include "bindings/core/v8/ExceptionState.h"
9 #include "core/css/cssom/CSSLengthValue.h"
10
11 namespace blink {
12
13 class CSSPrimitiveValue;
14
15 class CORE_EXPORT CSSSimpleLength final : public CSSLengthValue {
16 WTF_MAKE_NONCOPYABLE(CSSSimpleLength);
17 DEFINE_WRAPPERTYPEINFO();
18 public:
19 static CSSSimpleLength* create(double value, const String& type, ExceptionSt ate& exceptionState)
20 {
21 CSSPrimitiveValue::UnitType unit = unitFromName(type);
22 if (!isSupportedLengthUnit(unit)) {
23 exceptionState.throwTypeError("Invalid unit for CSSSimpleLength: " + type);
24 return nullptr;
25 }
26 return new CSSSimpleLength(value, unit);
27 }
28
29 static CSSSimpleLength* create(double value, CSSPrimitiveValue::UnitType typ e)
30 {
31 return new CSSSimpleLength(value, type);
32 }
33
34 bool containsPercent() const override;
35
36 double value() const { return m_value; }
37 String unit() const { return String(CSSPrimitiveValue::unitTypeToString(m_un it)); }
38 CSSPrimitiveValue::UnitType lengthUnit() const { return m_unit; }
39
40 void setValue(double value) { m_value = value; }
41
42 StyleValueType type() const override { return StyleValueType::SimpleLengthTy pe; }
43
44 CSSValue* toCSSValue() const override;
45
46 protected:
47 virtual CSSLengthValue* addInternal(const CSSLengthValue* other, ExceptionSt ate&);
48 virtual CSSLengthValue* subtractInternal(const CSSLengthValue* other, Except ionState&);
49 virtual CSSLengthValue* multiplyInternal(double, ExceptionState&);
50 virtual CSSLengthValue* divideInternal(double, ExceptionState&);
51
52 private:
53 CSSSimpleLength(double value, CSSPrimitiveValue::UnitType unit) : CSSLengthV alue(), m_unit(unit), m_value(value) {}
54
55 CSSPrimitiveValue::UnitType m_unit;
56 double m_value;
57 };
58
59 #define DEFINE_SIMPLE_LENGTH_TYPE_CASTS(argumentType) \
60 DEFINE_TYPE_CASTS(CSSSimpleLength, argumentType, value, \
61 value->type() == CSSLengthValue::StyleValueType::SimpleLengthType, \
62 value.type() == CSSLengthValue::StyleValueType::SimpleLengthType)
63
64 DEFINE_SIMPLE_LENGTH_TYPE_CASTS(CSSLengthValue);
65 DEFINE_SIMPLE_LENGTH_TYPE_CASTS(StyleValue);
66
67 } // namespace blink
68
69 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698