X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fdynamic-engraver.cc;h=14522c6376190c9ca84817d96af2a41b585d2844;hb=d873e86e58792e7d4fc743365338e385677233da;hp=7a5b5762789ef6f6d144d5f9f18031cbf53fb325;hpb=d2300573cae3c1920400d040faddd33f17b43c2d;p=lilypond.git diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index 7a5b576278..14522c6376 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -1,13 +1,25 @@ /* - dynamic-engraver.cc -- implement Dynamic_engraver + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1997--2011 Han-Wen Nienhuys - (c) 1997--2007 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "axis-group-interface.hh" #include "context.hh" +#include "engraver.hh" #include "dimensions.hh" #include "directional-element-interface.hh" #include "engraver.hh" @@ -176,6 +188,7 @@ Dynamic_engraver::process_music () } finished_cresc_ = cresc_; + announce_end_grob (finished_cresc_, SCM_EOL); cresc_ = 0; current_cresc_ev_ = 0; } @@ -252,7 +265,7 @@ Dynamic_engraver::process_music () cresc_->set_property ("style", s); context ()->set_property ((start_type + "Spanner").c_str (), SCM_EOL); - s = get_property ((start_type + "Text").c_str ()); + s = get_property ((start_type + "Text").c_str ()); if (Text_interface::is_markup (s)) { cresc_->set_property ("text", s); @@ -263,9 +276,9 @@ Dynamic_engraver::process_music () if (script_) { set_nested_property (cresc_, - scm_list_3 (ly_symbol2scm ("attach-dir"), + scm_list_3 (ly_symbol2scm ("bound-details"), ly_symbol2scm ("left"), - ly_symbol2scm ("bound-details") + ly_symbol2scm ("attach-dir") ), scm_from_int (RIGHT)); } @@ -276,7 +289,6 @@ Dynamic_engraver::process_music () cresc_->set_bound (LEFT, script_); add_bound_item (line_spanner_, cresc_->get_bound (LEFT)); } - Axis_group_interface::add_element (line_spanner_, cresc_); } } @@ -335,25 +347,10 @@ Dynamic_engraver::typeset_all () { if (finished_cresc_) { - bool use_bar = to_boolean (get_property ("hairpinToBarline")) - && scm_is_string (get_property ("whichBar")) - && !script_ev_; - - - if (!finished_cresc_->get_bound (RIGHT) - || use_bar) + if (!finished_cresc_->get_bound (RIGHT)) { - Grob *column_bound = 0; - if (use_bar) - { - column_bound = unsmob_grob (get_property ("breakableSeparationItem")); - } - - if (!column_bound) - column_bound = unsmob_grob (use_bar - ? get_property ("currentCommandColumn") - : get_property ("currentMusicalColumn")); + Grob *column_bound = unsmob_grob (get_property ("currentMusicalColumn")); finished_cresc_->set_bound (RIGHT, script_ ? script_ @@ -397,7 +394,6 @@ Dynamic_engraver::typeset_all () finished_line_spanner_->set_bound (RIGHT, ci); finished_line_spanner_->set_bound (LEFT, ci); } - finished_line_spanner_ = 0; } } @@ -444,15 +440,20 @@ ADD_ACKNOWLEDGER (Dynamic_engraver, note_column); ADD_TRANSLATOR (Dynamic_engraver, /* doc */ - "This engraver creates hairpins, dynamic texts, and their vertical\n" - "alignments. The symbols are collected onto a DynamicLineSpanner grob\n" - "which takes care of vertical positioning. ", + "Create hairpins, dynamic texts, and their vertical" + " alignments. The symbols are collected onto a" + " @code{DynamicLineSpanner} grob which takes care of vertical" + " positioning.", /* create */ "DynamicLineSpanner " + "DynamicTextSpanner " "DynamicText " - "Hairpin " - "TextSpanner ", + "Hairpin ", + + /* read */ + "", - /* read */ "", - /* write */ ""); + /* write */ + "" + );