X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=map.h;h=9dd80a795bea79538b51b186ef7f7ad3278959bf;hb=eadd63b657be979276b0f7bab89f76a632473ab4;hp=127d30ac4cb8294a2b61d6ab730a379107a44e28;hpb=a732e5a272c5a1a30abc8c8f830583c75f334b96;p=leo.git diff --git a/map.h b/map.h index 127d30a..9dd80a7 100644 --- a/map.h +++ b/map.h @@ -7,17 +7,45 @@ #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, + DATA_SOURCE_SHAPE, +}; + +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 +55,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