X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbar-number-engraver.cc;h=44f155df6e24298ca81a6f20c45b8b63904abd74;hb=a6a51abfd0195a3cf7d6ea095cf69808852f21ce;hp=7b6af94f5f205768a4102256c7eba33d37387f7a;hpb=c39d188d28fdc84cef8cbaea7b8d6e2fb718c30f;p=lilypond.git diff --git a/lily/bar-number-engraver.cc b/lily/bar-number-engraver.cc index 7b6af94f5f..44f155df6e 100644 --- a/lily/bar-number-engraver.cc +++ b/lily/bar-number-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2014 Han-Wen Nienhuys + Copyright (C) 1997--2015 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 @@ -45,14 +45,13 @@ protected: protected: void stop_translation_timestep (); - DECLARE_TRANSLATOR_LISTENER (alternative); - DECLARE_ACKNOWLEDGER (break_alignment); + void listen_alternative (Stream_event *); + void acknowledge_break_alignment (Grob_info); void process_music (); void create_items (); TRANSLATOR_DECLARATIONS (Bar_number_engraver); }; -IMPLEMENT_TRANSLATOR_LISTENER (Bar_number_engraver, alternative); void Bar_number_engraver::listen_alternative (Stream_event *ev) { @@ -62,8 +61,10 @@ Bar_number_engraver::listen_alternative (Stream_event *ev) alternative_event_ = ev; int current_barnumber = robust_scm2int (get_property ("currentBarNumber"), 0); Direction alternative_dir = robust_scm2dir (ev->get_property ("alternative-dir"), CENTER); - bool make_alternative = get_property ("alternativeNumberingStyle") == ly_symbol2scm ("numbers") - || get_property ("alternativeNumberingStyle") == ly_symbol2scm ("numbers-with-letters"); + bool make_alternative = scm_is_eq (get_property ("alternativeNumberingStyle"), + ly_symbol2scm ("numbers")) + || scm_is_eq (get_property ("alternativeNumberingStyle"), + ly_symbol2scm ("numbers-with-letters")); if (make_alternative) { /* @@ -100,7 +101,7 @@ Bar_number_engraver::process_music () create_items (); SCM alternative_style = get_property ("alternativeNumberingStyle"); string text_tag = ""; - if (alternative_style == ly_symbol2scm ("numbers-with-letters")) + if (scm_is_eq (alternative_style, ly_symbol2scm ("numbers-with-letters"))) { if (alternative_event_) { @@ -134,7 +135,8 @@ Bar_number_engraver::process_music () } } -Bar_number_engraver::Bar_number_engraver () +Bar_number_engraver::Bar_number_engraver (Context *c) + : Engraver (c) { text_ = 0; alternative_starting_bar_number_ = 0; @@ -175,7 +177,13 @@ Bar_number_engraver::create_items () text_ = make_item ("BarNumber", SCM_EOL); } -ADD_ACKNOWLEDGER (Bar_number_engraver, break_alignment); + +void +Bar_number_engraver::boot () +{ + ADD_LISTENER (Bar_number_engraver, alternative); + ADD_ACKNOWLEDGER (Bar_number_engraver, break_alignment); +} ADD_TRANSLATOR (Bar_number_engraver, /* doc */