2 staffsym.cc -- implement Staff_symbol
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
8 #include "staff-symbol.hh"
10 #include "dimensions.hh"
11 #include "paper-def.hh"
12 #include "molecule.hh"
18 MAKE_SCHEME_SCORE_ELEMENT_CALLBACKS(Staff_symbol)
20 Staff_symbol::do_brew_molecule () const
22 Score_element * common
23 = get_bound (LEFT)->common_refpoint (get_bound (RIGHT), X_AXIS);
26 // right_shift - left_shift
27 + get_bound (RIGHT)->relative_coordinate (common , X_AXIS)
28 - get_bound (LEFT)->relative_coordinate (common, X_AXIS)
31 Real t = paper_l ()->get_var ("stafflinethickness");
32 int l = line_count ();
34 Real height = (l-1) * staff_space () /2;
36 for (int i=0; i < l; i++)
39 lookup_l ()->filledbox (Box (Interval (0,width),
40 Interval (-t/2, t/2)));
42 a.translate_axis (height - i * staff_space (), Y_AXIS);
50 Staff_symbol::steps_i() const
52 return line_count () * 2;
56 Staff_symbol::line_count () const
58 return gh_scm2int (get_elt_property ("line-count"));
62 Staff_symbol::staff_space ()const
64 return gh_scm2double (get_elt_property ("staff-space")) *
65 paper_l ()->get_var ("staffspace");
68 Staff_symbol::Staff_symbol( SCM s)