2 registergroup.hh -- declare Register_group_register
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
10 #ifndef REGISTERGROUP_HH
11 #define REGISTERGROUP_HH
15 #include "score-elem-info.hh"
16 #include "register.hh"
19 Group a number of registers. Usually delegates everything to its contents.
22 class Register_group_register : public Request_register {
24 Pointer_list<Request_register*> reg_list_;
25 Link_array<Register_group_register> group_l_arr_;
26 Link_array<Request_register> nongroup_l_arr_;
29 Array<Score_elem_info> announce_info_arr_;
31 virtual void do_print()const;
33 virtual bool removable_b()const;
38 Register_group_register();
39 ~Register_group_register();
41 /// Score_register = 0, Staff_registers = 1, etc)
42 virtual int depth_i()const;
44 Go up in the tree. default: choose next parent
46 Register_group_register * ancestor_l(int l=1);
48 Input_register * ireg_l_;
54 #reg_l# is in #reg_list_#
56 virtual void terminate_register(Request_register * reg_l);
61 Remove #reg_l# from the list, and return it.
63 virtual Request_register * remove_register_p(Request_register*reg_l);
64 virtual void set_feature(Feature i);
65 virtual void sync_features() ;
66 virtual void do_pre_move_processing();
67 virtual void do_post_move_processing();
69 virtual void do_removal_processing();
70 virtual bool do_try_request(Request*);
71 virtual void do_process_requests();
73 virtual Staff_info get_staff_info()const;
75 virtual Register_group_register * find_register_l(String name,String id);
76 virtual void do_announces();
77 virtual void announce_element(Score_elem_info);
78 virtual Register_group_register* find_get_reg_l(String name, String id);
79 virtual Register_group_register * get_default_interpreter();
81 virtual void add(Request_register* reg_p);
83 virtual bool contains_b(Request_register*)const;
86 #endif // REGISTERGROUP_HH