X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fseparating-group-spanner.cc;h=468b340d399369c04296a9473a33ddac6ff5cd97;hb=refs%2Ftags%2Frelease%2F1.1.18;hp=42ec3ee92c562448b409bcc17fa252d4282d00d8;hpb=77add406027ae5afda409a2e77b35852c5fae4f9;p=lilypond.git diff --git a/lily/separating-group-spanner.cc b/lily/separating-group-spanner.cc index 42ec3ee92c..468b340d39 100644 --- a/lily/separating-group-spanner.cc +++ b/lily/separating-group-spanner.cc @@ -3,39 +3,48 @@ source file of the GNU LilyPond music typesetter - (c) 1998 Han-Wen Nienhuys + (c) 1998 Han-Wen Nienhuys */ #include "separating-group-spanner.hh" #include "single-malt-grouping-item.hh" +#include "p-col.hh" +#include "paper-def.hh" Array Separating_group_spanner::get_rods () const { Array a; - + for (int i=0; i < spacing_unit_l_arr_.size () -1; i++) { a.push (Rod (spacing_unit_l_arr_[i], spacing_unit_l_arr_[i+1])); - bool lb =spacing_unit_l_arr_[i]->breakable_b_; + bool lb =spacing_unit_l_arr_[i]->column_l ()->breakable_b_; if (lb) { - a.push (Rod ((Single_malt_grouping_item*) spacing_unit_l_arr_[i]->find_prebroken_piece (RIGHT), - spacing_unit_l_arr_[i+1])); + Rod r((Single_malt_grouping_item*) + spacing_unit_l_arr_[i]->find_prebroken_piece (RIGHT), + spacing_unit_l_arr_[i+1]); + r.distance_f_ += paper ()->interline_f () *1.5; + a.push (r); } - bool rb=spacing_unit_l_arr_[i+1]->breakable_b_; + bool rb=spacing_unit_l_arr_[i+1]->column_l ()->breakable_b_; if (rb) { a.push (Rod (spacing_unit_l_arr_[i], - (Single_malt_grouping_item*) spacing_unit_l_arr_[i+1]->find_prebroken_piece (LEFT))); + (Single_malt_grouping_item*) + spacing_unit_l_arr_[i+1]->find_prebroken_piece (LEFT))); } if (lb && rb) { - a.push (Rod ((Single_malt_grouping_item*)spacing_unit_l_arr_[i]->find_prebroken_piece (RIGHT), - (Single_malt_grouping_item*) spacing_unit_l_arr_[i+1]->find_prebroken_piece (LEFT))); + Rod r((Single_malt_grouping_item*) + spacing_unit_l_arr_[i]->find_prebroken_piece (RIGHT), + (Single_malt_grouping_item*) + spacing_unit_l_arr_[i+1]->find_prebroken_piece (LEFT)); + r.distance_f_ += paper ()->interline_f () *1.5; + a.push (r); } - } return a; @@ -48,16 +57,15 @@ Separating_group_spanner::add_spacing_unit (Single_malt_grouping_item*i) add_dependency (i); } -IMPLEMENT_IS_TYPE_B1(Separating_group_spanner, Spanner); + void -Separating_group_spanner::do_substitute_dependency (Score_elem*o, Score_elem*n) +Separating_group_spanner::do_substitute_dependency (Score_element*o, Score_element*n) { - if (o->is_type_b (Single_malt_grouping_item::static_name ())) + if (dynamic_cast (o)) { - Single_malt_grouping_item*ns = n ? - (Single_malt_grouping_item*)n->item () : 0; - spacing_unit_l_arr_.substitute ((Single_malt_grouping_item*)o->item (), ns); + Single_malt_grouping_item*ns = dynamic_cast (n); + spacing_unit_l_arr_.substitute (dynamic_cast (o), ns); } }