]> git.donarmstrong.com Git - lilypond.git/blob - lily/lyric-register.cc
release: 0.0.46.jcn1
[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     for (int i=0; i < lreq_arr_.size(); i++) {
34         Item *lp = new Lyric_item(lreq_arr_[i],i);
35         typeset_element(lp);
36     }
37     get_staff_info().walk_l_->allow_break();
38 }
39
40 void
41 Lyric_register::post_move_processing()
42 {
43     lreq_arr_.set_size(0);
44 }
45
46
47 bool
48 Lyric_register::acceptable_request_b(Request*r)
49 {
50     Musical_req * m =r->musical();
51     return (!m || ! m->lreq_l()) ;
52 }
53
54 IMPLEMENT_STATIC_NAME(Lyric_register);
55 ADD_THIS_REGISTER(Lyric_register);