]> git.donarmstrong.com Git - lilypond.git/blob - lily/line-group-group-engraver.cc
e269689cc896c64bc36bcab402048bed9c47aa1c
[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--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9 #include "staff-symbol.hh"
10 #include "axis-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->parent_l (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 Axis_group_spanner ;
55   staffline_p_->set_axes (Y_AXIS,Y_AXIS);
56 }
57
58
59
60
61 ADD_THIS_TRANSLATOR(Line_group_engraver_group);
62