]> mj.ucw.cz Git - leo.git/blobdiff - sym.h
Symbols: Comparison, disabling, and iterating
[leo.git] / sym.h
diff --git a/sym.h b/sym.h
index e53409e7b8d9ecc9a35874bfae3ff72bdad4d1fa..f5d75241ea6d6000b1ba12b6abb5a2d1859eaefc 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,7 @@ 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);
 };
 
 extern struct mempool *sym_mp;
@@ -55,8 +57,11 @@ 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));
 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);
 
 /* sym-point.c handles point symbols and icons */