]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/axis-group-element.hh
83acd188b107da2bbdac94971965b176eff504b2
[lilypond.git] / lily / include / axis-group-element.hh
1 /*
2   axis-group-element.hh -- declare Axis_group_element
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef AXIS_GROUP_ELEMENT_HH
11 #define AXIS_GROUP_ELEMENT_HH
12
13 #include "score-element.hh"
14
15
16 /** 
17   Treat a group of elements a unity in either or both axis sense .
18   This is a wrapper around Axis_group_administration
19
20   FIXME: remove this class, and make interface of it, so we can remove multiple inheritance.
21 */
22 class Axis_group_element : public virtual Score_element
23 {
24   /// modify fields of E for removal.
25   void do_remove (Score_element*e);
26
27 protected:
28   virtual Link_array<Score_element> get_extra_dependencies() const;
29   virtual Link_array<Score_element> elem_l_arr() const;
30   static Interval extent_callback (Dimension_cache const*);
31
32 public:
33   Axis axes_[2];
34     
35   void add_element (Score_element*);
36
37   Axis_group_element ();
38   void set_axes (Axis,Axis);
39
40   Link_array<Score_element> get_children ();
41 };
42
43 #endif // AXIS_GROUP_ELEMENT_HH