35 char* url,
char *tooltip,
char *target,
char *
id)
44 gvprintf(job,
"rect %s %.0f,%.0f %.0f,%.0f\n", url, AF[0].x,
45 AF[1].y, AF[1].x, AF[0].y);
48 gvprintf(job,
"circle %s %.0f,%.0f,%.0f\n", url, AF[0].x, AF[0].y,
53 for (
size_t i = 0; i < nump; i++) {
54 gvprintf(job,
" %.0f,%.0f", AF[i].x, AF[i].y);
66 gvprintf(job,
"rectangle (%.0f,%.0f) (%.0f,%.0f) %s %s\n",
67 AF[0].x, AF[1].y, AF[1].x, AF[0].y, url, tooltip);
76 gvputs(job,
"<area shape=\"circle\"");
79 gvputs(job,
"<area shape=\"rect\"");
82 gvputs(job,
"<area shape=\"poly\"");
97 if (target && target[0]) {
102 if (tooltip && tooltip[0]) {
112 gvputs(job,
" coords=\"");
115 gvprintf(job,
"%.0f,%.0f,%.0f", AF[0].x, AF[0].y,
120 gvprintf(job,
"%.0f,%.0f,%.0f,%.0f", AF[0].x, AF[1].y, AF[1].x,
124 gvprintf(job,
"%.0f,%.0f", AF[0].x, AF[0].y);
125 for (
size_t i = 1; i < nump; i++) {
126 gvprintf(job,
",%.0f,%.0f", AF[i].x, AF[i].y);
145 gvputs(job,
"base referer\n");
146 if (obj->
url && obj->
url[0]) {
153 if (obj->
url && obj->
url[0]) {
162 gvputs(job,
"<map id=\"");
164 gvputs(job,
"\" name=\"");
200 url, tooltip, target,
id);
char * agnameof(void *)
returns a string descriptor for the object.
#define EMIT_CLUSTERS_LAST
#define GVRENDER_DOES_TOOLTIPS
#define GVRENDER_DOES_LABELS
#define GVRENDER_DOES_MAPS
#define GVRENDER_DOES_TARGETS
#define GVRENDER_Y_GOES_DOWN
#define GVRENDER_DOES_MAP_POLYGON
#define GVRENDER_DOES_MAP_RECTANGLE
#define GVRENDER_DOES_MAP_CIRCLE
int gvputs_xml(GVJ_t *job, const char *s)
int gvputs(GVJ_t *job, const char *s)
void gvprintf(GVJ_t *job, const char *format,...)
static void map_begin_anchor(GVJ_t *job, char *url, char *tooltip, char *target, char *id)
static gvdevice_features_t device_features_map_nopoly
gvplugin_installed_t gvrender_map_types[]
static gvrender_engine_t map_engine
static void map_output_shape(GVJ_t *job, map_shape_t map_shape, pointf *AF, size_t nump, char *url, char *tooltip, char *target, char *id)
static void map_begin_page(GVJ_t *job)
static int gvputs_wrapper(void *state, const char *s)
wrap gvputs to offer a void * first parameter
static gvdevice_features_t device_features_map
gvplugin_installed_t gvdevice_map_types[]
static void map_end_page(GVJ_t *job)
static gvrender_features_t render_features_map
static void xml_url_puts(GVJ_t *job, const char *s)
gvplugin_active_render_t render
map_shape_t url_map_shape
options to tweak the behavior of XML escaping
int gv_xml_escape(const char *s, xml_flags_t flags, int(*cb)(void *state, const char *s), void *state)
XML escaping functionality.