emit_begin_node(job, n);
ND_shape(n)->fns->codefn(job, n);
- if (ND_xlabel(n) && ND_xlabel(n)->set)
+ if (ND_xlabel(n) && ND_xlabel(n)->set) {
+ obj_state_t *obj = push_obj_state(job);
+ obj->type = NODE_OBJTYPE;
+ obj->u.n = n;
+ obj->emit_state = EMIT_NDRAW;
emit_label(job, EMIT_NLABEL, ND_xlabel(n));
+ pop_obj_state(job);
+ }
emit_end_node(job);
}
}
pts.UR.y += pos.y;
if (doAnchor && !(job->flags & EMIT_CLUSTERS_LAST))
- anchor = initAnchor(job, env, &tbl->data, pts, &saved, 1);
+ anchor = initAnchor(job, env, &tbl->data, pts, &saved, 0);
else
anchor = 0;
emit_html_rules(job, cp, env, tbl->data.pencolor, *cells);
}
- if (tbl->data.border)
+ if (tbl->data.border) {
+ if (anchor) {
+ agxbuf xb;
+ obj_state_t *obj = job->obj;
+ unsigned char buf[SMALLBUF];
+ agxbinit(&xb, SMALLBUF, buf);
+ agxbput(&xb, obj->id);
+ agxbputc(&xb, 'b');
+ char* id = agxbuse(&xb);
+ gvrender_begin_anchor(job,
+ obj->url, obj->tooltip, obj->target,
+ id);
+ agxbfree(&xb);
+ }
doBorder(job, &tbl->data, pts);
-
+ }
}
if (anchor)
- endAnchor(job, &saved, 1);
+ endAnchor(job, &saved, 0);
if (doAnchor && (job->flags & EMIT_CLUSTERS_LAST)) {
if (initAnchor(job, env, &tbl->data, pts, &saved, 0))
pts.UR.y += pos.y;
if (doAnchor && !(job->flags & EMIT_CLUSTERS_LAST))
- inAnchor = initAnchor(job, env, &cp->data, pts, &saved, 1);
+ inAnchor = initAnchor(job, env, &cp->data, pts, &saved, 0);
else
inAnchor = 0;
}
if (inAnchor)
- endAnchor(job, &saved, 1);
+ endAnchor(job, &saved, 0);
if (doAnchor && (job->flags & EMIT_CLUSTERS_LAST)) {
if (initAnchor(job, env, &cp->data, pts, &saved, 0))