]> git.donarmstrong.com Git - lilypond.git/blob - lily/super-elem.cc
release: 0.1.11
[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_output_str() const
16 {
17   String s;
18   for (int i=0; i < lines_arr_.size(); i++)
19     {
20       s += lines_arr_[i]->TeX_output_str();
21       if (i + 1<lines_arr_.size())
22         s += "\\interscoreline"; // TODO
23     }
24   return s;
25 }
26
27 void
28 Super_elem::handle_broken_dependencies()
29 {
30   lines_arr_ = line_of_score_l_->get_lines();
31   for (int i =0; i < lines_arr_.size(); i++) 
32     add_dependency (lines_arr_[i]);
33 }
34   
35
36 void
37 Super_elem::do_substitute_dependency (Score_elem*o,Score_elem* n)
38 {
39   if (line_of_score_l_ == o->spanner())
40     line_of_score_l_ = n? (Line_of_score*) n->spanner() : 0;
41 }
42
43 Super_elem::Super_elem()
44 {
45   line_of_score_l_ = new Line_of_score ;
46 }
47
48 void
49 Super_elem::do_add_processing()
50 {
51   pscore_l_->typeset_unbroken_spanner (line_of_score_l_);
52   add_dependency (line_of_score_l_);
53 }
54
55 IMPLEMENT_IS_TYPE_B1(Super_elem,Score_elem);