]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/elem-group.hh
release: 0.0.65
[lilypond.git] / lily / include / elem-group.hh
1 /*
2   elem-group.hh -- declare Element_group
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9
10 #ifndef ELEM_GROUP_HH
11 #define ELEM_GROUP_HH
12 #include "score-elem.hh"
13
14 /** A class to treat a group of elements as a single entity. The
15   dimensions are the unions of the dimensions of what it contains.
16   Translation means translating the contents.
17   */
18 class Element_group : virtual Score_elem{  
19 protected:
20     Link_array<Score_elem> elem_l_arr_;
21     virtual void do_substitute_dependency(Score_elem* old, Score_elem* new_l);
22     virtual Interval do_height()const;
23     virtual Interval do_width()const;
24     virtual void do_print() const ;
25     virtual Element_group* elem_group() { return this; }
26     
27     
28 public:
29     Element_group();
30     Element_group(Element_group const&);
31     NAME_MEMBERS(Element_group);
32     virtual void translate(Offset);
33     virtual void add_element(Score_elem*);
34     virtual String TeX_string()const;
35 };
36
37 #endif // ELEM_GROUP_HH