2 staff-gravs.cc -- implement Line_group_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
9 #include "staff-symbol.hh"
10 #include "command-request.hh"
13 #include "line-group-group-engraver.hh"
14 #include "paper-column.hh"
15 #include "axis-group-interface.hh"
18 Line_group_engraver_group::Line_group_engraver_group()
25 Line_group_engraver_group::typeset_element (Score_element *elem)
27 if (!elem->parent_l (Y_AXIS))
28 Axis_group_interface (staffline_p_).add_element (elem);
29 Engraver_group_engraver::typeset_element (elem);
34 Line_group_engraver_group::do_removal_processing()
36 Engraver_group_engraver::do_removal_processing ();
37 Item * it = get_staff_info().command_pcol_l ();
39 Pointer_group_interface (it, "bounded-by-me").add_element (staffline_p_);
40 staffline_p_->set_bound(RIGHT,it);
41 Engraver_group_engraver::typeset_element (staffline_p_);
46 Line_group_engraver_group::do_creation_processing()
48 create_line_spanner ();
49 Item * it = get_staff_info().command_pcol_l ();
50 staffline_p_->set_bound(LEFT,it);
51 Pointer_group_interface (it, "bounded-by-me").add_element (staffline_p_);
53 Engraver::announce_element (Score_element_info (staffline_p_,0));
57 Line_group_engraver_group::create_line_spanner ()
59 staffline_p_ = new Spanner (SCM_EOL);
60 Axis_group_interface (staffline_p_).set_interface ();
61 Axis_group_interface (staffline_p_).set_axes (Y_AXIS,Y_AXIS);
67 ADD_THIS_TRANSLATOR(Line_group_engraver_group);