2 separating-group-spanner.cc -- implement Separating_group_spanner
4 source file of the GNU LilyPond music typesetter
6 (c) 1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
10 #include "separating-group-spanner.hh"
11 #include "single-malt-grouping-item.hh"
15 Separating_group_spanner::get_rods () const
19 for (int i
=0; i
< spacing_unit_l_arr_
.size () -1; i
++)
21 a
.push (Rod (spacing_unit_l_arr_
[i
], spacing_unit_l_arr_
[i
+1]));
22 bool lb
=spacing_unit_l_arr_
[i
]->column_l ()->breakable_b_
;
25 a
.push (Rod ((Single_malt_grouping_item
*)
26 spacing_unit_l_arr_
[i
]->find_prebroken_piece (RIGHT
),
27 spacing_unit_l_arr_
[i
+1]));
29 bool rb
=spacing_unit_l_arr_
[i
+1]->column_l ()->breakable_b_
;
32 a
.push (Rod (spacing_unit_l_arr_
[i
],
33 (Single_malt_grouping_item
*)
34 spacing_unit_l_arr_
[i
+1]->find_prebroken_piece (LEFT
)));
38 a
.push (Rod ((Single_malt_grouping_item
*)
39 spacing_unit_l_arr_
[i
]->find_prebroken_piece (RIGHT
),
40 (Single_malt_grouping_item
*)
41 spacing_unit_l_arr_
[i
+1]->find_prebroken_piece (LEFT
)));
50 Separating_group_spanner::add_spacing_unit (Single_malt_grouping_item
*i
)
52 spacing_unit_l_arr_
.push (i
);
56 IMPLEMENT_IS_TYPE_B1(Separating_group_spanner
, Spanner
);
59 Separating_group_spanner::do_substitute_dependency (Score_elem
*o
, Score_elem
*n
)
61 if (o
->is_type_b (Single_malt_grouping_item::static_name ()))
63 Single_malt_grouping_item
*ns
= n
?
64 (Single_malt_grouping_item
*)n
->item () : 0;
65 spacing_unit_l_arr_
.substitute ((Single_malt_grouping_item
*)o
->item (), ns
);