]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/register-group.hh
7af00f6505f8e14b3153238e3e6d3a0d7f62a1d9
[lilypond.git] / lily / include / register-group.hh
1 /*
2   registergroup.hh -- declare 
3
4   source file of the LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9
10 #ifndef REGISTERGROUP_HH
11 #define REGISTERGROUP_HH
12
13
14 #include "plist.hh"
15 #include "staff-elem-info.hh"
16 #include "register.hh"
17
18 /**
19   Group a number of registers. Usually delegates everything to its contents.
20   Postfix: group
21   */
22 class Register_group_register : public Request_register {
23 protected:
24     IPointerList<Request_register*> reg_list_;
25     virtual void do_print()const;
26 public:
27
28     /**
29       Junk #reg_l#.
30
31       Pre:
32         #reg_l# is in #reg_list_#
33      */
34     virtual void terminate_register(Request_register * reg_l);
35     
36    NAME_MEMBERS(Register_group_register);
37     
38     /**
39       Remove #reg_l# from the list, and return it.
40      */
41     Request_register * get_register_p(Request_register*reg_l);
42     virtual void set_feature(Features i);
43     virtual bool acceptable_request_b(Request*)const;
44     virtual void pre_move_processing();
45     virtual void post_move_processing();
46     virtual void acknowledge_element(Staff_elem_info info);
47     virtual bool try_request(Request*);
48     virtual void process_requests();
49     virtual ~Register_group_register();
50     virtual void add(Request_register* reg_p);
51     void add(Array<Request_register*> reg_p_arr);
52     virtual bool contains_b(Request_register*)const;
53 };
54
55 #endif // REGISTERGROUP_HH
56
57