]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/axis-group-interface.hh
release: 1.3.69
[lilypond.git] / lily / include / axis-group-interface.hh
1 /*   
2   axis-group-interface.hh -- declare Axis_group_interface
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7   
8  */
9
10 #ifndef AXIS_GROUP_INTERFACE_HH
11 #define AXIS_GROUP_INTERFACE_HH
12
13 #include "group-interface.hh"
14
15 /**
16    Treat a group of elements as a union. This sets the parent of any S
17    added to ELT_L_ to ELT_L_.
18
19    Properties:
20
21    axes -- list of axis (number) in which this group works
22
23    transparent -- an Axis_group is transparent by default
24
25    elements -- contains list of pointers to other elements
26
27    interfaces -- Axis_group is added to this list.
28 */
29 struct Axis_group_interface 
30 {
31   static Interval group_extent_callback (Score_element *,Axis);
32   static Interval relative_group_extent (Axis, Score_element * common, SCM list);
33
34   static void add_element (Score_element* me, Score_element*);
35   static void set_axes (Score_element*,Axis,Axis);
36   static bool axis_b (Score_element*,Axis);
37   static Link_array<Score_element> get_children (Score_element*);
38   static bool has_interface (Score_element*);
39   static void set_interface (Score_element*);
40   
41 };
42
43 #endif /* AXIS_GROUP_INTERFACE_HH */
44