]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/axis-group-interface.hh
release: 1.3.42
[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   Score_element *elt_l_;
32   Axis_group_interface (Score_element*);
33
34   static Interval group_extent_callback (Dimension_cache const*);
35   static Interval relative_group_extent (Axis, Score_element * common, SCM list);
36
37   void add_element (Score_element*);
38   void set_axes (Axis,Axis);
39   bool axis_b (Axis)const;
40   Link_array<Score_element> get_children ();
41   bool has_interface_b ();
42   void set_interface ();
43   
44 };
45
46 #endif /* AXIS_GROUP_INTERFACE_HH */
47