+ if (Item *item = dynamic_cast<Item *> (me))
+ if (!Item::break_visible (item))
+ return SCM_EOL;
+
+ Grob *p = me->get_parent (X_AXIS);
+
+ Offset off (me->relative_coordinate (p, X_AXIS),
+ me->relative_coordinate (p, Y_AXIS));
+
+ return internal_balloon_print (me, p, off);
+}
+
+MAKE_SCHEME_CALLBACK (Balloon_interface, print_spanner, 1);
+SCM
+Balloon_interface::print_spanner (SCM smob)
+{
+ Spanner *me = unsmob_spanner (smob);
+ Spanner *orig = dynamic_cast<Spanner *> (me->original ());
+
+ if (orig)
+ {
+ Direction spanner_placement = robust_scm2dir (me->get_property ("spanner-placement"), LEFT);