]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/registergroup.hh
release: 0.0.39-1
[lilypond.git] / lily / include / registergroup.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     /**
37       Remove #reg_l# from the list, and return it.
38      */
39     Request_register * get_register_p(Request_register*reg_l);
40     virtual void set_feature(Features i);
41     virtual bool acceptable_request_b(Request*);
42     virtual void pre_move_processing();
43     virtual void post_move_processing();
44     virtual void acknowledge_element(Staff_elem_info info);
45     virtual bool try_request(Request*);
46     virtual void process_requests();
47     virtual ~Register_group_register();
48     virtual void add(Request_register* reg_p);
49     virtual bool contains_b(Request_register*);
50 };
51
52 #endif // REGISTERGROUP_HH
53
54