+ Grob * st = get_staff_symbol (me);
+ if (st && me->common_refpoint (st, Y_AXIS))
+ {
+ Real oldpos = get_position (me);
+ me->set_grob_property ("staff-position", gh_double2scm (p - oldpos));
+ }
+ else
+ {
+ me->set_grob_property ("staff-position",
+ gh_double2scm (p));
+
+ }
+
+ if (me->has_offset_callback_b (Staff_symbol_referencer::callback_proc, Y_AXIS))
+ return ;
+
+ me->add_offset_callback (Staff_symbol_referencer::callback_proc, Y_AXIS);
+}
+
+/*
+ Half of the height, in staff space, i.e. 2.0 for a normal staff.
+*/
+Real
+Staff_symbol_referencer::staff_radius (Grob*me)
+{
+ return (line_count (me) -1) / 2.0;