2 elem-group.hh -- declare Horizontal_vertical_group
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
12 #include "score-elem.hh"
14 class Elbement_group: public virtual Score_elem {
16 Link_array<Score_elem> elem_l_arr_;
18 virtual void do_print() const ;
21 bool contains_b(Score_elem const *)const;
22 void add_element(Score_elem*);
27 class Horizontal_group : public Elbement_group {
30 Horizontal_group(Horizontal_group const&);
32 void add_element(Score_elem*);
34 virtual void do_substitute_dependency(Score_elem*,Score_elem*);
35 virtual void do_print() const ;
36 virtual void translate_x(Real);
37 virtual Interval do_width()const;
40 class Vertical_group : public Elbement_group {
42 virtual void translate_y(Real);
43 virtual void do_print() const ;
44 virtual Interval do_height()const;
45 virtual void do_substitute_dependency(Score_elem*,Score_elem*);
46 void add_element(Score_elem*);
48 Vertical_group(Vertical_group const &);
53 /** A class to treat a group of elements as a single entity. The
54 dimensions are the unions of the dimensions of what it contains.
55 Translation means translating the contents.
57 class Horizontal_vertical_group : public Vertical_group,
58 public Horizontal_group
61 virtual Horizontal_vertical_group* elem_group() { return this; }
64 bool contains_b(Score_elem const *)const;
66 virtual void do_substitute_dependency(Score_elem*,Score_elem*);
67 virtual void do_print() const;
68 void add_element(Score_elem*);
71 #endif // ELEM_GROUP_HH