X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpercent-repeat-engraver.cc;h=da0b9b2964279f21d69113646a149ccbf78bac1f;hb=90e4d7057f3857da049dfda3d130017d4719bd6b;hp=1e69064051b19fb06bd9deadd3f58ed193ca9aa6;hpb=bb8a0a5387af94dd2702877256334b160575a730;p=lilypond.git diff --git a/lily/percent-repeat-engraver.cc b/lily/percent-repeat-engraver.cc index 1e69064051..da0b9b2964 100644 --- a/lily/percent-repeat-engraver.cc +++ b/lily/percent-repeat-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2000--2011 Han-Wen Nienhuys , Erik Sandberg + Copyright (C) 2000--2015 Han-Wen Nienhuys , Erik Sandberg LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -50,14 +50,15 @@ protected: Moment command_moment_; virtual void finalize (); - DECLARE_TRANSLATOR_LISTENER (percent); + void listen_percent (Stream_event *); void start_translation_timestep (); void stop_translation_timestep (); void process_music (); }; -Percent_repeat_engraver::Percent_repeat_engraver () +Percent_repeat_engraver::Percent_repeat_engraver (Context *c) + : Engraver (c) { percent_ = 0; percent_counter_ = 0; @@ -73,7 +74,7 @@ Percent_repeat_engraver::start_translation_timestep () if (now_mom ().main_part_ != command_moment_.main_part_) { first_command_column_ - = unsmob_grob (get_property ("currentCommandColumn")); + = unsmob (get_property ("currentCommandColumn")); command_moment_ = now_mom (); } @@ -85,7 +86,6 @@ Percent_repeat_engraver::start_translation_timestep () } } -IMPLEMENT_TRANSLATOR_LISTENER (Percent_repeat_engraver, percent); void Percent_repeat_engraver::listen_percent (Stream_event *ev) { @@ -122,7 +122,7 @@ Percent_repeat_engraver::process_music () percent_->set_bound (LEFT, col); SCM count = percent_event_->get_property ("repeat-count"); - if (count != SCM_EOL && to_boolean (get_property ("countPercentRepeats")) + if (!scm_is_null (count) && to_boolean (get_property ("countPercentRepeats")) && check_repeat_count_visibility (context (), count)) { percent_counter_ = make_spanner ("PercentRepeatCounter", @@ -133,6 +133,7 @@ Percent_repeat_engraver::process_music () percent_counter_->set_bound (LEFT, col); Side_position_interface::add_support (percent_counter_, percent_); percent_counter_->set_parent (percent_, Y_AXIS); + percent_counter_->set_parent (percent_, X_AXIS); } else percent_counter_ = 0; @@ -168,6 +169,12 @@ Percent_repeat_engraver::stop_translation_timestep () { } +void +Percent_repeat_engraver::boot () +{ + ADD_LISTENER (Percent_repeat_engraver, percent); +} + ADD_TRANSLATOR (Percent_repeat_engraver, /* doc */ "Make whole measure repeats.",