#endif
}
+static void svg_print_class(GVJ_t * job, char* kind, void* obj)
+{
+ char* str;
+
+ gvprintf(job, "\" class=\"%s", kind);
+ if ((str = agget(obj, "class")) && *str) {
+ gvputs(job, " ");
+ gvputs(job, xml_string(str));
+ }
+}
+
static void svg_print_color(GVJ_t * job, gvcolor_t color)
{
switch (color.type) {
int numLayers)
{
obj_state_t *obj = job->obj;
- char *str;
gvputs(job, "<g id=\"");
gvputs(job, xml_string(layername));
- gvputs(job, "\" class=\"layer");
- if ((str = agget(obj->u.n, "class"))) {
- gvputs(job, " ");
- gvputs(job, xml_string(str));
- }
+ svg_print_class(job, "layer", obj->u.g);
gvputs(job, "\">\n");
}
static void svg_begin_page(GVJ_t * job)
{
obj_state_t *obj = job->obj;
- char *str;
/* its really just a page of the graph, but its still a graph,
* and it is the entire graph if we're not currently paging */
gvputs(job, "<g id=\"");
gvputs(job, xml_string(obj->id));
- gvputs(job, "\" class=\"graph");
- if ((str = agget(obj->u.n, "class"))) {
- gvputs(job, " ");
- gvputs(job, xml_string(str));
- }
+ svg_print_class(job, "graph", obj->u.g);
gvprintf(job,
"\" transform=\"scale(%g %g) rotate(%d) translate(%g %g)\">\n",
job->scale.x, job->scale.y, -job->rotation,
static void svg_begin_cluster(GVJ_t * job)
{
obj_state_t *obj = job->obj;
- char *str;
gvputs(job, "<g id=\"");
gvputs(job, xml_string(obj->id));
- gvputs(job, "\" class=\"cluster");
- if ((str = agget(obj->u.n, "class"))) {
- gvputs(job, " ");
- gvputs(job, xml_string(str));
- }
+ svg_print_class(job, "cluster", obj->u.sg);
gvputs(job, "\">\n");
gvputs(job, "<title>");
gvputs(job, xml_string(agnameof(obj->u.g)));
static void svg_begin_node(GVJ_t * job)
{
obj_state_t *obj = job->obj;
- char *str;
gvputs(job, "<g id=\"");
gvputs(job, xml_string(obj->id));
if (job->layerNum > 1)
gvprintf (job, "_%s", xml_string(job->gvc->layerIDs[job->layerNum]));
- gvputs(job, "\" class=\"node");
- if ((str = agget(obj->u.n, "class"))) {
- gvputs(job, " ");
- gvputs(job, xml_string(str));
- }
+ svg_print_class(job, "node", obj->u.n);
gvputs(job, "\">\n");
gvputs(job, "<title>");
gvputs(job, xml_string(agnameof(obj->u.n)));
{
obj_state_t *obj = job->obj;
char *ename;
- char *str;
gvputs(job, "<g id=\"");
gvputs(job, xml_string(obj->id));
- gvputs(job, "\" class=\"edge");
- if ((str = agget(obj->u.n, "class"))) {
- gvputs(job, " ");
- gvputs(job, xml_string(str));
- }
+ svg_print_class(job, "edge", obj->u.e);
gvputs(job, "\">\n");
gvputs(job, "<title>");