Cogs.Core
stylesheet.h
1#ifndef LH_STYLESHEET_H
2#define LH_STYLESHEET_H
3
4#include "style.h"
5#include "css_selector.h"
6
7namespace litehtml
8{
9 class document_container;
10
11 class css
12 {
13 css_selector::vector m_selectors;
14 public:
15 css()
16 {
17
18 }
19
20 ~css()
21 {
22
23 }
24
25 const css_selector::vector& selectors() const
26 {
27 return m_selectors;
28 }
29
30 void clear()
31 {
32 m_selectors.clear();
33 }
34
35 void parse_stylesheet(const tchar_t* str, const tchar_t* baseurl, const std::shared_ptr <document>& doc, const media_query_list::ptr& media);
36 void sort_selectors();
37 static void parse_css_url(const tstring& str, tstring& url);
38
39 private:
40 void parse_atrule(const tstring& text, const tchar_t* baseurl, const std::shared_ptr<document>& doc, const media_query_list::ptr& media);
41 void add_selector(css_selector::ptr selector);
42 bool parse_selectors(const tstring& txt, const litehtml::style::ptr& styles, const media_query_list::ptr& media);
43
44 };
45
46 inline void litehtml::css::add_selector( css_selector::ptr selector )
47 {
48 selector->m_order = (int) m_selectors.size();
49 m_selectors.push_back(selector);
50 }
51
52}
53
54#endif // LH_STYLESHEET_H