]> git.donarmstrong.com Git - lilypond.git/blob - lily/super-elem.cc
release: 0.0.68pre
[lilypond.git] / lily / super-elem.cc
1 /*
2   super-elem.cc -- implement Super_elem
3
4   source file of the LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9 #include "super-elem.hh"
10 #include "scoreline.hh"
11 #include "p-score.hh"
12 #include "string.hh"
13
14 String
15 Super_elem::TeX_string()const
16 {
17     String s;
18     for (int i=0; i < lines_arr_.size(); i++){
19         s += lines_arr_[i]->TeX_string();
20         if (i + 1<lines_arr_.size() )
21             s += "\\interscoreline"; // TODO
22     }
23     return s;
24 }
25
26 void
27 Super_elem::handle_broken_dependencies()
28 {
29     lines_arr_ = line_of_score_l_->get_lines();
30     for (int i =0; i < lines_arr_.size(); i++) 
31         add_dependency(lines_arr_[i]);
32 }
33     
34
35 void
36 Super_elem::do_substitute_dependency(Score_elem*o,Score_elem* n)
37 {
38     if (line_of_score_l_ == o->spanner())
39         line_of_score_l_ = n?(Line_of_score*)n->spanner():0;
40 }
41
42 Super_elem::Super_elem()
43 {
44     line_of_score_l_ = new Line_of_score ;
45 }
46
47 void
48 Super_elem::do_add_processing()
49 {
50     pscore_l_->typeset_unbroken_spanner( line_of_score_l_ );
51     add_dependency(line_of_score_l_);
52 }
53
54
55
56 IMPLEMENT_STATIC_NAME(Super_elem);
57 IMPLEMENT_IS_TYPE_B1(Super_elem,Score_elem);