+/**
+ translate the rest vertically by amount DY, but only if
+ it doesn't have staff-position set.
+*/
+void
+Rest::translate (Grob *me, int dy)
+{
+ if (!scm_is_number (me->get_property ("staff-position")))
+ {
+ me->translate_axis (dy * Staff_symbol_referencer::staff_space (me) / 2.0, Y_AXIS);
+ Grob *p = me->get_parent (Y_AXIS);
+ p->flush_extent_cache (Y_AXIS);
+ }
+}
+
+SCM
+Rest::print (SCM smob)
+{
+ return brew_internal_stencil (unsmob_grob (smob), true);
+}
+
+MAKE_SCHEME_CALLBACK (Rest, width, 1);
+/*
+ We need the callback. The real stencil has ledgers depending on
+ Y-position. The Y-position is known only after line breaking. */
+SCM
+Rest::width (SCM smob)
+{
+ return generic_extent_callback (unsmob_grob (smob), X_AXIS);
+}
+
+MAKE_SCHEME_CALLBACK (Rest, height, 1);
+SCM
+Rest::height (SCM smob)