source file of the GNU LilyPond music typesetter
- (c) 1999--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 1999--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#include "staff-symbol-referencer.hh"
return st ? Staff_symbol::line_count (st) : 0;
}
-bool
-Staff_symbol_referencer::on_line (Grob *me)
-{
- return on_line (me, (int) rint (get_position (me)));
-}
-
-bool
-Staff_symbol_referencer::on_staff_line (Grob *me)
-{
- return on_staff_line (me, (int) rint (get_position (me)));
-}
-
bool
Staff_symbol_referencer::on_line (Grob *me, int pos)
{
- int sz = line_count (me) - 1;
- return ((pos + sz) % 2) == 0;
+ Grob *st = get_staff_symbol (me);
+ return st ? Staff_symbol::on_line (st, pos) : false;
}
bool
return robust_scm2double (me->get_property ("staff-position"), p);
}
+
+Interval
+Staff_symbol_referencer::extent_in_staff (Grob *me)
+{
+ Grob *st = get_staff_symbol (me);
+ Grob *c = st ? me->common_refpoint (st, Y_AXIS) : 0;
+
+ Interval retval;
+ if (st && c)
+ {
+ retval = me->extent (c, Y_AXIS)
+ - st->relative_coordinate (c, Y_AXIS);
+ }
+
+ return retval;
+}
+
int
Staff_symbol_referencer::get_rounded_position (Grob *me)
{
}
ADD_INTERFACE (Staff_symbol_referencer,
- "An object whose Y position is meant relative to a staff "
- "symbol. "
- "These usually have @code{Staff_symbol_referencer::callback} "
- "in their @code{Y-offset-callbacks}. ",
+ "An object whose Y@tie{}position is meant relative to a staff"
+ " symbol. These usually"
+ " have @code{Staff_symbol_referencer::callback} in their"
+ " @code{Y-offset-callbacks}.",
/* properties */
- "staff-position");
-
+ "staff-position "
+ );