From: fred Date: Tue, 26 Mar 2002 23:22:16 +0000 (+0000) Subject: lilypond-1.3.55 X-Git-Tag: release/1.5.59~1616 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=5b096b5073bfb7861bd1b7a93b0613772999ffec;p=lilypond.git lilypond-1.3.55 --- diff --git a/lily/pointer-group-interface.cc b/lily/pointer-group-interface.cc new file mode 100644 index 0000000000..f20aea2b05 --- /dev/null +++ b/lily/pointer-group-interface.cc @@ -0,0 +1,55 @@ +/* + group-interface.cc -- implement Pointer_group_interface + + source file of the GNU LilyPond music typesetter + + (c) 1999--2000 Han-Wen Nienhuys + + */ +#include "group-interface.hh" +#include "score-element.hh" + +Pointer_group_interface::Pointer_group_interface (Score_element const* e) +{ + elt_l_ = (Score_element*)e; + name_ = "elements"; +} + + +Pointer_group_interface::Pointer_group_interface (Score_element const *e, String s) +{ + elt_l_ =(Score_element*)e; + name_ = s; +} +bool +Pointer_group_interface::has_interface_b () +{ + SCM el = elt_l_->get_elt_pointer (name_.ch_C()); + + return el == SCM_EOL || gh_pair_p (el); +} + + +void +Pointer_group_interface::add_element (Score_element*p) +{ + elt_l_->set_elt_pointer (name_.ch_C(), + gh_cons (p->self_scm_, + elt_l_->get_elt_pointer (name_.ch_C()))); +} + +int +Pointer_group_interface::count () +{ + return scm_ilength (elt_l_->get_elt_pointer (name_.ch_C())); +} + +void +Pointer_group_interface::set_interface () +{ + if (!has_interface_b ()) + { + elt_l_->set_elt_pointer (name_.ch_C(), SCM_EOL); + } +} + diff --git a/lily/score-engraver.cc b/lily/score-engraver.cc index 7b7dbe428a..b84406fa15 100644 --- a/lily/score-engraver.cc +++ b/lily/score-engraver.cc @@ -1,5 +1,5 @@ /* - score-grav.cc -- implement Score_engraver + score-engraver.cc -- implement Score_engraver source file of the GNU LilyPond music typesetter @@ -74,8 +74,6 @@ Score_engraver::do_removal_processing() typeset_all (); - if (musical_column_l_->linked_b ()) - programming_error ("Last column in score should be non-musical"); set_columns (0,0); } @@ -146,7 +144,7 @@ Score_engraver::typeset_all() { if (!elem_p->parent_l (X_AXIS)) { - bool br = to_boolean (elem_p->remove_elt_property ("breakable")); + bool br = to_boolean (elem_p->get_elt_property ("breakable")); Axis_group_interface gi ((br) ? command_column_l_ : musical_column_l_) ; gi.add_element(elem_p); } @@ -183,10 +181,10 @@ Score_engraver::set_columns (Paper_column *new_command_l, { if (*current[i]) { - if ((*current[i])->linked_b()) + if ((*current[i])->used_b()) + { scoreline_l_->add_column ((*current[i])); - } else { diff --git a/lily/spanner.cc b/lily/spanner.cc index c384224889..01ae90892c 100644 --- a/lily/spanner.cc +++ b/lily/spanner.cc @@ -159,10 +159,6 @@ void Spanner::set_bound(Direction d, Item*i) { spanned_drul_[d] =i; - if (i) - { - i->used_b_ = true; - } /** We check for Line_of_score to prevent the column -> line_of_score @@ -179,7 +175,8 @@ Spanner::set_bound(Direction d, Item*i) } -Spanner::Spanner () +Spanner::Spanner (SCM s) + : Score_element (s) { spanned_drul_[LEFT]=0; spanned_drul_[RIGHT]=0;