2 elem-group.hh -- declare Horizontal_vertical_group_element
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
13 #include "score-elem.hh"
14 #include "axis-group.hh"
19 Treat a group of elements a unity in horizontal sense .
20 A column is a typical Vertical_group.
22 class Horizontal_group_element : public virtual Axis_group_element {
24 virtual void remove_all();
25 virtual Interval do_width() const;
28 DECLARE_MY_RUNTIME_TYPEINFO;
29 virtual void add_element (Score_elem*);
30 virtual void remove_element (Score_elem*);
34 Like Horizontal_group_element, but in X direction
36 class Vertical_group_element : public virtual Axis_group_element {
38 virtual Interval do_height() const;
39 virtual void remove_all();
42 virtual void add_element (Score_elem*);
43 virtual void remove_element (Score_elem*);
44 DECLARE_MY_RUNTIME_TYPEINFO;
47 /** A class to treat a group of elements as a single entity. The
48 dimensions are the unions of the dimensions of what it contains.
49 Translation means translating the contents.
51 class Horizontal_vertical_group_element : public Vertical_group_element,
52 public Horizontal_group_element
55 virtual void remove_all();
57 virtual void add_element (Score_elem*);
58 virtual void remove_element (Score_elem*);
60 DECLARE_MY_RUNTIME_TYPEINFO;
63 #endif // ELEM_GROUP_HH