summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/core/css/parser/MediaQueryToken.h
diff options
context:
space:
mode:
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.h88
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