]> mj.ucw.cz Git - leo.git/blobdiff - css.h
TODO
[leo.git] / css.h
diff --git a/css.h b/css.h
index 9344a639ed168d31a2c82bf99fd621b6d7d6ac1f..2ae99fbdda276ad4bc7076a88f38265a38076757 100644 (file)
--- a/css.h
+++ b/css.h
@@ -1,7 +1,7 @@
 /*
  *     Hic Est Leo -- MapCSS Stylesheets
  *
- *     (c) 2014 Martin Mares <mj@ucw.cz>
+ *     (c) 2014--2015 Martin Mares <mj@ucw.cz>
  */
 
 #ifndef _LEO_CSS_H
@@ -14,6 +14,10 @@ struct css_sheet {
   struct mempool *pool;
   clist rules;
   char *filename;
+
+  /* For parsing for single properties by css_parse_prop */
+  int pushed_token;
+  struct style_prop *parsed_prop;
 };
 
 struct css_rule {
@@ -69,9 +73,15 @@ struct css_condition {
   osm_val_t val;
 };
 
+enum css_action_type {
+  CSS_ACTION_SET,
+  CSS_ACTION_EXPR,
+};
+
 struct css_action {
   cnode n;
-  struct style_prop prop;
+  enum css_action_type type;
+  struct style_prop prop;      // for CSS_ACTION_SET
 };
 
 /* css-parse.y */
@@ -79,13 +89,15 @@ struct css_action {
 extern struct css_sheet *css_this;
 
 struct css_sheet *css_load(char *filename);
+struct style_prop *css_parse_prop(struct mempool *mp, char *objname, const char *key_str, const char *value_str);
 
 /* css-lex.c */
 
-void css_error(char *err, ...);
+void css_error(const char *err, ...);
 int css_lex(void);
 void css_lex_open(void);
 void css_lex_close(void);
+void css_lex_string(const char *str);
 
 color_t css_rgb_to_color(const char *rgb);