]> git.donarmstrong.com Git - lilypond.git/blob - lily/staff-sym-reg.cc
34a53a552ba96d582e5cceb239e508595d59a786
[lilypond.git] / lily / staff-sym-reg.cc
1 /*
2   staff-sym-reg.cc -- implement Staff_sym_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-sym-reg.hh"
10 #include "staff-sym.hh"
11 #include "score.hh"
12 #include "p-col.hh"
13
14 const NO_LINES = 5;
15
16 Staff_sym_register::Staff_sym_register()
17 {
18    span_p_ = 0;
19    last_mom_ =0;
20 }
21
22 void
23 Staff_sym_register::post_move_processing()
24 {
25     if (!span_p_ && !last_mom_) {
26         span_p_= new Staff_symbol(NO_LINES);
27         span_p_->left_col_l_ =
28             get_staff_info().command_pcol_l()->postbreak_p_; // GUH
29     }
30     if (!last_mom_) {
31         last_mom_ = get_staff_info().score_l()->last();
32     }
33 }
34
35
36 void
37 Staff_sym_register::pre_move_processing()
38 {
39     Staff_info i=get_staff_info();
40     if ( span_p_ && i.when() == last_mom_) {
41         span_p_->right_col_l_ = i.command_pcol_l()->prebreak_p_;
42         typeset_element(span_p_);
43         span_p_ =0;
44     }
45 }
46
47 IMPLEMENT_STATIC_NAME(Staff_sym_register);
48 ADD_THIS_REGISTER(Staff_sym_register);
49 Staff_sym_register::~Staff_sym_register()
50 {
51     assert(!span_p_);
52     delete span_p_;
53 }