diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/css/parser/MediaQueryToken.h')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/css/parser/MediaQueryToken.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/chromium/third_party/WebKit/Source/core/css/parser/MediaQueryToken.h b/chromium/third_party/WebKit/Source/core/css/parser/MediaQueryToken.h new file mode 100644 index 00000000000..5e602e8cbf6 --- /dev/null +++ b/chromium/third_party/WebKit/Source/core/css/parser/MediaQueryToken.h @@ -0,0 +1,88 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MediaQueryToken_h +#define MediaQueryToken_h + +#include "core/css/CSSPrimitiveValue.h" +#include "wtf/text/WTFString.h" + +namespace WebCore { + +enum MediaQueryTokenType { + IdentToken = 0, + FunctionToken, + DelimiterToken, + NumberToken, + PercentageToken, + DimensionToken, + WhitespaceToken, + ColonToken, + SemicolonToken, + CommaToken, + LeftParenthesisToken, + RightParenthesisToken, + LeftBracketToken, + RightBracketToken, + LeftBraceToken, + RightBraceToken, + StringToken, + BadStringToken, + EOFToken, + CommentToken, +}; + +enum NumericValueType { + IntegerValueType, + NumberValueType, +}; + +class MediaQueryToken { +public: + enum BlockType { + NotBlock, + BlockStart, + BlockEnd, + }; + + MediaQueryToken(MediaQueryTokenType, BlockType = NotBlock); + MediaQueryToken(MediaQueryTokenType, String value, BlockType = NotBlock); + + MediaQueryToken(MediaQueryTokenType, UChar); // for DelimiterToken + MediaQueryToken(MediaQueryTokenType, double, NumericValueType); // for NumberToken + + // Converts NumberToken to DimensionToken. + void convertToDimensionWithUnit(String); + + // Converts NumberToken to PercentageToken. + void convertToPercentage(); + + MediaQueryTokenType type() const { return m_type; } + String value() const { return m_value; } + String textForUnitTests() const; + + UChar delimiter() const; + NumericValueType numericValueType() const; + double numericValue() const; + BlockType blockType() const { return m_blockType; } + CSSPrimitiveValue::UnitType unitType() const { return m_unit; } + +private: + MediaQueryTokenType m_type; + String m_value; + + UChar m_delimiter; // Could be rolled into m_value? + + NumericValueType m_numericValueType; + double m_numericValue; + CSSPrimitiveValue::UnitType m_unit; + + BlockType m_blockType; +}; + +typedef Vector<MediaQueryToken>::iterator MediaQueryTokenIterator; + +} // namespace + +#endif // MediaQueryToken_h |