]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/group-interface.hh
* flower
[lilypond.git] / lily / include / group-interface.hh
1 /*
2   group-interface.hh -- declare Group_interface
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1999--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9 #ifndef GROUP_INTERFACE_HH
10 #define GROUP_INTERFACE_HH
11
12 #include "grob.hh"
13 #include "string.hh"
14 /**
15    Look at Score element ELT as thing which has a list property called
16    NAME_. Normally the list would contain Grobs, but
17    sometimes it can be different things.
18
19    todo: reename as list_interface?
20 */
21
22 struct Group_interface
23 {
24 public:
25   static int count (Grob *, SCM);
26   static void add_thing (Grob *, SCM, SCM);
27 };
28
29 struct Pointer_group_interface : public Group_interface
30 {
31 public:
32   static void add_grob (Grob *, SCM nm, Grob *e);
33 };
34
35 Link_array<Grob> extract_grob_array (Grob const *elt, SCM symbol);
36 Link_array<Item> extract_item_array (Grob const *elt, SCM symbol);
37
38
39 #endif /* GROUP_INTERFACE_HH */
40