2 staff-margin-engraver.cc -- implement Staff_margin_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 1998--2000 Jan Nieuwenhuizen <janneke@gnu.org>
9 #include "staff-margin-engraver.hh"
11 #include "timing-translator.hh"
12 #include "text-item.hh"
13 #include "side-position-interface.hh"
15 ADD_THIS_TRANSLATOR (Staff_margin_engraver
);
17 Staff_margin_engraver::Staff_margin_engraver ()
21 visibility_lambda_
= ly_eval_str ("postbreak-only-visibility");
28 should be able to set whole paragraph (multiple lines, center) to
29 left (right?) of staff, e.g.:
32 2 Clarinetti |________
37 Staff_margin_engraver::acknowledge_element (Score_element_info inf
)
39 Item
*i
= cast_to_interesting_item (inf
.elem_l_
);
40 if (!i
|| inf
.origin_trans_l_arr (this).size() != 1)
44 SCM long_name
= get_property ("instrument", 0);
45 SCM short_name
= get_property ("instr", 0);
47 if (now_mom () > Moment (0))
48 long_name
= short_name
;
50 if (gh_string_p (long_name
))
53 text_p_
->set_elt_property ("text", long_name
);
54 text_p_
->set_elt_property ("direction", gh_int2scm (LEFT
));
55 Bar_script_engraver::attach_script_to_item (i
);
58 UGH. ignores font size settings.
60 Interval
iv(text_p_
->extent (Y_AXIS
));
61 text_p_
->translate_axis (- iv
.center (), Y_AXIS
);