]> git.donarmstrong.com Git - lilypond.git/blob - lily/line-group-group-engraver.cc
release: 1.0.1
[lilypond.git] / lily / line-group-group-engraver.cc
1 /*
2   staff-gravs.cc -- implement Line_group_engraver
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9 #include "staff-sym.hh"
10 #include "vertical-group-spanner.hh"
11 #include "command-request.hh"
12 #include "bar.hh"
13 #include "debug.hh"
14 #include "line-group-group-engraver.hh"
15 #include "p-col.hh"
16
17 Line_group_engraver_group::Line_group_engraver_group()
18 {
19   staffline_p_ =0;
20 }
21
22
23 void
24 Line_group_engraver_group::typeset_element (Score_element *elem)
25 {
26   if (!elem->axis_group_l_a_[Y_AXIS])
27     staffline_p_->add_element (elem);
28   Engraver_group_engraver::typeset_element (elem);
29 }
30
31
32 void
33 Line_group_engraver_group::do_removal_processing()
34 {
35   Engraver_group_engraver::do_removal_processing ();
36
37   staffline_p_->set_bounds(RIGHT,get_staff_info().command_pcol_l ());
38   Engraver_group_engraver::typeset_element (staffline_p_);
39   staffline_p_ = 0;
40 }
41
42 void
43 Line_group_engraver_group::do_creation_processing()
44 {
45   create_line_spanner ();
46   staffline_p_->set_bounds(LEFT,get_staff_info().command_pcol_l ());
47   
48   Engraver::announce_element (Score_element_info (staffline_p_,0));
49 }
50
51 void
52 Line_group_engraver_group::create_line_spanner ()
53 {
54   staffline_p_ = new Vertical_group_spanner ;
55 }
56
57 void
58 Line_group_engraver_group::do_announces ()
59 {
60   Engraver_group_engraver::do_announces ();
61 }
62
63
64 IMPLEMENT_IS_TYPE_B1(Line_group_engraver_group,Engraver_group_engraver);
65 ADD_THIS_TRANSLATOR(Line_group_engraver_group);
66