-#pragma once\r
-\r
-namespace litehtml\r
-{\r
- struct media_query_expression\r
- {\r
- typedef std::vector<media_query_expression> vector;\r
- media_feature feature;\r
- int val;\r
- int val2;\r
- bool check_as_bool;\r
- \r
- media_query_expression()\r
- {\r
- check_as_bool = false;\r
- feature = media_feature_none;\r
- val = 0;\r
- val2 = 0;\r
- }\r
-\r
- bool check(const media_features& features) const;\r
- };\r
-\r
- class media_query\r
- {\r
- public:\r
- typedef std::shared_ptr<media_query> ptr;\r
- typedef std::vector<media_query::ptr> vector;\r
- private:\r
- media_query_expression::vector m_expressions;\r
- bool m_not;\r
- media_type m_media_type;\r
- public:\r
- media_query();\r
- media_query(const media_query& val);\r
-\r
- static media_query::ptr create_from_string(const tstring& str, const std::shared_ptr<document>& doc);\r
- bool check(const media_features& features) const;\r
- };\r
-\r
- class media_query_list\r
- {\r
- public:\r
- typedef std::shared_ptr<media_query_list> ptr;\r
- typedef std::vector<media_query_list::ptr> vector;\r
- private:\r
- media_query::vector m_queries;\r
- bool m_is_used;\r
- public:\r
- media_query_list();\r
- media_query_list(const media_query_list& val);\r
-\r
- static media_query_list::ptr create_from_string(const tstring& str, const std::shared_ptr<document>& doc);\r
- bool is_used() const;\r
- bool apply_media_features(const media_features& features); // returns true if the m_is_used changed\r
- };\r
-\r
- inline media_query_list::media_query_list(const media_query_list& val)\r
- {\r
- m_is_used = val.m_is_used;\r
- m_queries = val.m_queries;\r
- }\r
-\r
- inline media_query_list::media_query_list()\r
- {\r
- m_is_used = false;\r
- }\r
-\r
- inline bool media_query_list::is_used() const\r
- {\r
- return m_is_used;\r
- }\r
-\r
-}
\ No newline at end of file
+#ifndef LH_MEDIA_QUERY_H
+#define LH_MEDIA_QUERY_H
+
+namespace litehtml
+{
+ struct media_query_expression
+ {
+ typedef std::vector<media_query_expression> vector;
+ media_feature feature;
+ int val;
+ int val2;
+ bool check_as_bool;
+
+ media_query_expression()
+ {
+ check_as_bool = false;
+ feature = media_feature_none;
+ val = 0;
+ val2 = 0;
+ }
+
+ bool check(const media_features& features) const;
+ };
+
+ class media_query
+ {
+ public:
+ typedef std::shared_ptr<media_query> ptr;
+ typedef std::vector<media_query::ptr> vector;
+ private:
+ media_query_expression::vector m_expressions;
+ bool m_not;
+ media_type m_media_type;
+ public:
+ media_query();
+ media_query(const media_query& val);
+
+ static media_query::ptr create_from_string(const tstring& str, const std::shared_ptr<document>& doc);
+ bool check(const media_features& features) const;
+ };
+
+ class media_query_list
+ {
+ public:
+ typedef std::shared_ptr<media_query_list> ptr;
+ typedef std::vector<media_query_list::ptr> vector;
+ private:
+ media_query::vector m_queries;
+ bool m_is_used;
+ public:
+ media_query_list();
+ media_query_list(const media_query_list& val);
+
+ static media_query_list::ptr create_from_string(const tstring& str, const std::shared_ptr<document>& doc);
+ bool is_used() const;
+ bool apply_media_features(const media_features& features); // returns true if the m_is_used changed
+ };
+
+ inline media_query_list::media_query_list(const media_query_list& val)
+ {
+ m_is_used = val.m_is_used;
+ m_queries = val.m_queries;
+ }
+
+ inline media_query_list::media_query_list()
+ {
+ m_is_used = false;
+ }
+
+ inline bool media_query_list::is_used() const
+ {
+ return m_is_used;
+ }
+
+}
+
+#endif // LH_MEDIA_QUERY_H