]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/score-reg.hh
release: 0.0.71pre
[lilypond.git] / lily / include / score-reg.hh
1 /*
2   score-reg.hh -- declare Score_register
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9
10 #ifndef SCORE_REG_HH
11 #define SCORE_REG_HH
12
13 #include "register-group.hh"
14 #include "global-acceptor.hh"
15
16 class Score_register : public Register_group_register, public Global_acceptor {
17     Line_of_score * scoreline_l_;
18
19     
20     Array<Item*> nobreak_item_p_arr_;
21     Link_array<Score_elem> musical_item_p_arr_;
22     
23     Score_column* command_column_l_;
24     Score_column* musical_column_l_;
25     
26     friend class Score;
27     void set_cols(Score_column*,Score_column*);
28     void typeset_all();
29     
30 public:
31     NAME_MEMBERS();
32
33     Score_register();
34
35 protected:   
36     /* Global_acceptor interface */
37     virtual void set_score(Score * score_l);
38     virtual void prepare(Moment);
39     virtual void finish();
40     virtual void process();
41     virtual int depth_i() const { return Global_acceptor::depth_i();}
42     virtual Acceptor* ancestor_l(int l) { return Global_acceptor::ancestor_l(l);}
43
44 protected:
45     /* Register_group_register interface */
46     virtual Staff_info get_staff_info()const;
47     virtual bool do_try_request(Request*);
48     virtual void do_creation_processing();
49     virtual void do_removal_processing();
50     virtual void announce_element(Score_elem_info);
51     virtual void typeset_breakable_item(Item * nobreak_p);
52     virtual void do_announces();
53     virtual void typeset_element(Score_elem*elem_p);
54     virtual Paper_def * paper() const;
55     virtual void do_pre_move_processing();
56 };
57
58 #endif // SCORE_REG_HH