31 char* url,
char *tooltip,
char *target,
char *
id)
40 gvprintf(job,
"rect %s %.0f,%.0f %.0f,%.0f\n", url, AF[0].x,
41 AF[1].y, AF[1].x, AF[0].y);
44 gvprintf(job,
"circle %s %.0f,%.0f,%.0f\n", url, AF[0].x, AF[0].y,
49 for (
size_t i = 0; i < nump; i++) {
50 gvprintf(job,
" %.0f,%.0f", AF[i].x, AF[i].y);
62 gvprintf(job,
"rectangle (%.0f,%.0f) (%.0f,%.0f) %s %s\n",
63 AF[0].x, AF[1].y, AF[1].x, AF[0].y, url, tooltip);
72 gvputs(job,
"<area shape=\"circle\"");
75 gvputs(job,
"<area shape=\"rect\"");
78 gvputs(job,
"<area shape=\"poly\"");
93 if (target && target[0]) {
98 if (tooltip && tooltip[0]) {
108 gvputs(job,
" coords=\"");
111 gvprintf(job,
"%.0f,%.0f,%.0f", AF[0].x, AF[0].y,
116 gvprintf(job,
"%.0f,%.0f,%.0f,%.0f", AF[0].x, AF[1].y, AF[1].x,
120 gvprintf(job,
"%.0f,%.0f", AF[0].x, AF[0].y);
121 for (
size_t i = 1; i < nump; i++) {
122 gvprintf(job,
",%.0f,%.0f", AF[i].x, AF[i].y);
141 gvputs(job,
"base referer\n");
142 if (obj->
url && obj->
url[0]) {
149 if (obj->
url && obj->
url[0]) {
158 gvputs(job,
"<map id=\"");
160 gvputs(job,
"\" name=\"");
196 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 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
graphs, nodes and edges info: Agraphinfo_t, Agnodeinfo_t and Agedgeinfo_t
int xml_escape(const char *s, xml_flags_t flags, int(*cb)(void *state, const char *s), void *state)