]> git.donarmstrong.com Git - lilypond.git/blob - lily/lyric-register.cc
release: 0.0.54
[lilypond.git] / lily / lyric-register.cc
1 /*
2   lyric-register.cc -- implement Lyric_register
3
4   source file of the LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9 #include "staff-walker.hh"
10 #include "lyric-register.hh"
11 #include "lyric-item.hh"
12 #include "musical-request.hh"
13
14 Lyric_register::Lyric_register()
15 {
16     
17 }
18
19 bool
20 Lyric_register::try_request(Request*r)
21 {
22     Musical_req * m =r->musical();
23     if (!m || ! m->lreq_l()) 
24         return false;
25     lreq_arr_.push(m->lreq_l());
26
27     return true;
28 }
29
30 void
31 Lyric_register::process_requests()
32 {
33     Lyric_item * last_item_l =0;
34     for (int i=0; i < lreq_arr_.size(); i++) {
35         Lyric_item *lp = new Lyric_item(lreq_arr_[i],i);
36         if (last_item_l)
37             lp->add_support(last_item_l);
38         last_item_l = lp;
39         typeset_element(lp);
40     }
41     get_staff_info().walk_l_->allow_break();
42 }
43
44 void
45 Lyric_register::post_move_processing()
46 {
47     lreq_arr_.set_size(0);
48 }
49
50
51 bool
52 Lyric_register::acceptable_request_b(Request*r)
53 {
54     Musical_req * m =r->musical();
55     return (!m || ! m->lreq_l()) ;
56 }
57
58 IMPLEMENT_STATIC_NAME(Lyric_register);
59 ADD_THIS_REGISTER(Lyric_register);