X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=map.h;h=2fa4f89bbbc6d1b2c94c309eae09d716f556d328;hb=af80b4c6ce10632dfda42b6f93634c4ad5f5e3f5;hp=127d30ac4cb8294a2b61d6ab730a379107a44e28;hpb=a732e5a272c5a1a30abc8c8f830583c75f334b96;p=leo.git diff --git a/map.h b/map.h index 127d30a..2fa4f89 100644 --- a/map.h +++ b/map.h @@ -7,17 +7,44 @@ #ifndef _LEO_MAP_H #define _LEO_MAP_H +#include "svg.h" + /* Map configuration */ extern double map_min_x, map_min_y; extern double map_max_x, map_max_y; extern double page_width, page_height; extern uns map_clip, map_rotate, map_draw_border; -extern char *map_xml_input; extern char *map_projection; -extern char *map_style_sheet; extern char *map_svg_output; +// Remember to update map.c:map_formats +enum data_source_type { + DATA_SOURCE_INVALID, + DATA_SOURCE_OSMXML, + DATA_SOURCE_FIXED, +}; + +struct data_source { + cnode n; + // Configuration + char *file; + int format; + clist styles; // of data_source_style + // Runtime + struct osm *osm; +}; + +struct data_source_style { + cnode n; + // Configuration + char *name; + // Runtime + struct css_sheet *css; +}; + +extern clist map_sources; + /* Calculated by map_set_scale() */ extern double map_scale; @@ -27,4 +54,8 @@ extern double page_map_width, page_map_height; void map_set_scale(void); bool map_object_visible_p(struct osm_object *o); +void map_load_styles(void); +void map_load_sources(void); +void map_apply_styles(struct svg *svg); + #endif