Swiftray  1.0
css-context.h
Go to the documentation of this file.
1 #ifndef CSSCONTEXT_H
2 #define CSSCONTEXT_H
3 
4 #include <QtGui/private/qcssparser_p.h>
5 #include <QtSvg/private/qsvghandler_p.h>
6 #include <libxml/parser.h>
7 #include <libxml/tree.h>
9 #include <parser/svgpp-defs.h>
10 
11 namespace Parser {
12 
13 class CSSContext : public BaseContext {
14 public:
15  CSSContext(BaseContext const &parent) : BaseContext(parent) {
16  qInfo() << "<style>";
17  }
18 
19  template<class Range>
20  void set_text(Range const &text) {
21  std::string str = std::string(text.begin(), text.end());
22  QString css = QString::fromStdString(str);
23  QCss::StyleSheet sheet;
24  bool success = QCss::Parser(css).parse(&sheet);
25  if (success) {
26  qInfo() << "Success load CSS" << sheet.styleRules.size();
27  svgpp_style_selector->styleSheets.append(sheet);
28  } else {
29  qInfo() << "Failed to load CSS";
30  }
31  }
32 
33  void on_exit_element() {
34  qInfo() << "</style>";
35  }
36 
37  using BaseContext::set;
38  using ObjectContext::set;
40 
41 private:
42  std::string fragment_id_;
43 };
44 
45 }
46 
47 #endif
Definition: base-context.h:10
void set(tag::attribute::width, double val)
Definition: object-context.h:9
Definition: css-context.h:13
void on_exit_element()
Definition: css-context.h:33
void set_text(Range const &text)
Definition: css-context.h:20
CSSContext(BaseContext const &parent)
Definition: css-context.h:15
void set(tag::attribute::width, double val)
Definition: object-context.h:9
void set(svgpp::tag::attribute::display, svgpp::tag::value::none)
Definition: stylable-context.h:150
Definition: base-context.h:8
SVGStyleSelector * svgpp_style_selector
Definition: svgpp-impl.cpp:218