- Staff_symbol_referencer ();
- void set_staff_symbol (Staff_symbol*);
- Real staff_line_leading_f () const;
- Staff_symbol * staff_symbol_l () const;
- int lines_i () const;
- virtual void do_substitute_element_pointer (Score_element*,Score_element*);
+ DECLARE_GROB_INTERFACE ();
+ static bool ugly_hack (Grob *);
+ static void set_position (Grob *, Real);
+ static void pure_set_position (Grob *, Real);
+ DECLARE_SCHEME_CALLBACK (callback, (SCM element));
+
+ /**
+ Leading are the lead strips between the sticks (lines) of
+ typeface. ie. leading is vertical space.
+ */
+ static Real line_thickness (Grob *);
+ static Real staff_space (Grob *);
+ static Grob *get_staff_symbol (Grob *);
+ static bool on_line (Grob *, int);
+ static bool on_staff_line (Grob *, int);
+ static int line_count (Grob *);
+ static Real get_position (Grob *);
+ static Real pure_get_position (Grob *);
+
+ /**
+ Interval of staff lines.
+ */
+ static Interval staff_span (Grob *);
+
+ /**
+ Half of the height, in staff space, i.e. 2.0 for a normal staff.
+ */
+ static Real staff_radius (Grob *);
+
+ static int get_rounded_position (Grob *);
+ static int pure_get_rounded_position (Grob *);
+ static Interval extent_in_staff (Grob *);
+
+private:
+ static void internal_set_position (Grob *, Real, bool);
+ static Real internal_get_position (Grob *, bool);