]> git.donarmstrong.com Git - lilypond.git/blob - lily/elem-group.cc
release: 0.1.11
[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 void
21 Axis_group_element::do_junk_links()
22 {
23   axis_admin_.elem_l_arr_.set_size (0);
24 }
25
26
27 bool
28 Axis_group_element::contains_b (Score_elem const*e) const
29 {
30   return axis_admin_.contains_b (e);
31 }
32
33 Link_array<Score_elem>
34 Axis_group_element::get_extra_dependencies() const
35 {
36   return axis_admin_.elem_l_arr_;
37 }
38
39 void
40 Axis_group_element::do_print() const
41 {
42   axis_admin_.print();
43 }
44
45
46 Axis_group_element::Axis_group_element()
47 {
48   transparent_b_ = true;
49 }
50
51 // ****************
52
53
54 void
55 Vertical_group_element::add_element (Score_elem*e)
56 {
57   axis_admin_.add_element (e, this, Y_AXIS, Y_AXIS);
58 }
59
60 void
61 Vertical_group_element::remove_element (Score_elem*e)
62 {
63   axis_admin_.remove_element (e, Y_AXIS, Y_AXIS);
64 }
65
66
67 Interval
68 Vertical_group_element::do_height() const
69 {
70   return axis_admin_.extent (Y_AXIS);
71 }
72 void
73 Vertical_group_element::remove_all()
74 {
75   axis_admin_.remove_all (Y_AXIS,Y_AXIS);
76 }
77
78 // ****************
79
80 void
81 Horizontal_group_element::remove_all()
82 {
83   axis_admin_.remove_all (X_AXIS,X_AXIS);
84 }
85
86 void
87 Horizontal_group_element::add_element (Score_elem*e)
88 {
89   axis_admin_.add_element (e,this, X_AXIS,X_AXIS);
90 }
91
92 void
93 Horizontal_group_element::remove_element (Score_elem*e)
94 {
95   axis_admin_.remove_element (e,X_AXIS,X_AXIS);
96 }
97
98
99 Interval
100 Horizontal_group_element::do_width() const
101 {
102   return axis_admin_.extent (X_AXIS);
103 }
104
105
106 // ****************
107
108 void
109 Horizontal_vertical_group_element::remove_all()
110 {
111   axis_admin_.remove_all (X_AXIS,Y_AXIS);
112 }
113 void
114 Horizontal_vertical_group_element::add_element (Score_elem *e)
115 {
116   axis_admin_.add_element (e, this, X_AXIS, Y_AXIS);
117 }
118
119 void
120 Horizontal_vertical_group_element::remove_element (Score_elem*e)
121 {
122   axis_admin_.remove_element (e, X_AXIS, Y_AXIS);
123 }
124
125
126
127 IMPLEMENT_IS_TYPE_B1(Axis_group_element, Score_elem);
128 IMPLEMENT_IS_TYPE_B1(Horizontal_group_element, Axis_group_element);
129 IMPLEMENT_IS_TYPE_B1(Vertical_group_element, Axis_group_element);
130 IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group_element, Horizontal_group_element, Vertical_group_element);