]> git.donarmstrong.com Git - lilypond.git/blob - lily/elem-group.cc
release: 0.1.7
[lilypond.git] / lily / elem-group.cc
1 /*
2   elem-group.cc -- implement Horizontal_vertical_group_element
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9 #include "elem-group.hh"
10 #include "interval.hh"
11 #include "item.hh"
12 #include "debug.hh"
13
14 void
15 Axis_group_element::do_unlink()
16 {
17     remove_all();
18 }
19
20
21 bool
22 Axis_group_element::contains_b(Score_elem const*e)const
23 {
24     return axis_admin_.contains_b(e);
25 }
26
27 Link_array<Score_elem>
28 Axis_group_element::get_extra_dependencies()const
29 {
30     return axis_admin_.elem_l_arr_;
31 }
32
33 void
34 Axis_group_element::do_print()const
35 {
36     axis_admin_.print();
37 }
38
39 // ****************
40
41
42 void
43 Vertical_group_element::add_element(Score_elem*e)
44 {
45     axis_admin_.add_element(e, this, Y_AXIS, Y_AXIS);
46 }
47
48 void
49 Vertical_group_element::remove_element(Score_elem*e)
50 {
51     axis_admin_.remove_element(e, Y_AXIS, Y_AXIS);
52 }
53
54
55 Interval
56 Vertical_group_element::do_height() const
57 {
58     return axis_admin_.extent(Y_AXIS);
59 }
60 void
61 Vertical_group_element::remove_all()
62 {
63     axis_admin_.remove_all(Y_AXIS,Y_AXIS);
64 }
65 // ****************
66
67 void
68 Horizontal_group_element::remove_all()
69 {
70     axis_admin_.remove_all(X_AXIS,X_AXIS);
71 }
72
73 void
74 Horizontal_group_element::add_element(Score_elem*e)
75 {
76     axis_admin_.add_element(e,this, X_AXIS,X_AXIS);
77 }
78
79 void
80 Horizontal_group_element::remove_element(Score_elem*e)
81 {
82     axis_admin_.remove_element(e,X_AXIS,X_AXIS);
83 }
84
85
86 Interval
87 Horizontal_group_element::do_width()const
88 {
89     return axis_admin_.extent(X_AXIS);
90 }
91
92
93 // ****************
94
95 void
96 Horizontal_vertical_group_element::remove_all()
97 {
98     axis_admin_.remove_all(X_AXIS,Y_AXIS);
99 }
100 void
101 Horizontal_vertical_group_element::add_element(Score_elem *e)
102 {
103     axis_admin_.add_element(e, this, X_AXIS, Y_AXIS);
104 }
105
106 void
107 Horizontal_vertical_group_element::remove_element(Score_elem*e)
108 {
109     axis_admin_.remove_element(e, X_AXIS, Y_AXIS);
110 }
111
112
113
114 IMPLEMENT_IS_TYPE_B1(Axis_group_element, Score_elem);
115 IMPLEMENT_IS_TYPE_B1(Horizontal_group_element, Axis_group_element);
116 IMPLEMENT_IS_TYPE_B1(Vertical_group_element, Axis_group_element);
117 IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group_element, Horizontal_group_element, Vertical_group_element);