]> mj.ucw.cz Git - leo.git/blobdiff - sym.h
Průvodce: More styling
[leo.git] / sym.h
diff --git a/sym.h b/sym.h
index e53409e7b8d9ecc9a35874bfae3ff72bdad4d1fa..23be8d225f83b502ba662726d2585ee3422bddac 100644 (file)
--- a/sym.h
+++ b/sym.h
@@ -19,6 +19,7 @@ enum symbolizer_type {
   SYMBOLIZER_AREA,
   SYMBOLIZER_TEXT,
   SYMBOLIZER_LINEIMG,
+  SYMBOLIZER_DISABLED,
   SYMBOLIZER_MAX,
 };
 
@@ -33,6 +34,8 @@ struct symbolizer {
   void (*draw)(struct symbol *sym, struct svg *svg);
   void (*gen)(struct osm_object *o, struct style_info *si, struct svg *svg);
   void (*init)(void);
+  bool (*same_p)(struct symbol *x, struct symbol *y);
+  struct symbol *(*clone)(struct symbol *src);
 };
 
 extern struct mempool *sym_mp;
@@ -55,8 +58,12 @@ void sym_init(void);
 void *sym_new(enum symbolizer_type type, struct osm_object *o, size_t size);
 void sym_plan(struct symbol *sym, z_index_t zindex);
 void sym_draw_all(struct svg *svg);
+void sym_for_all_planned(void (*callback)(struct symbol *s, z_index_t zindex));
 void sym_from_style(struct osm_object *o, struct style_results *sr, struct svg *svg);
 z_index_t sym_zindex(struct osm_object *o, struct style_info *si, double default_mzi);
+bool sym_same_attrs_p(struct symbol *x, struct symbol *y);
+void sym_disable(struct symbol *s);
+struct symbol *sym_clone(struct symbol *s);
 
 /* sym-point.c handles point symbols and icons */