X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fstanza-number-align-engraver.cc;h=53ec89358f56359cad37b12d14b4d711d5dc6343;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=de35f67147cf41aa1ab61bcc6407dc8e18274f3d;hpb=811be522d0b79493159f47789e5621dc85493495;p=lilypond.git diff --git a/lily/stanza-number-align-engraver.cc b/lily/stanza-number-align-engraver.cc index de35f67147..53ec89358f 100644 --- a/lily/stanza-number-align-engraver.cc +++ b/lily/stanza-number-align-engraver.cc @@ -1,9 +1,20 @@ /* - stanza-number-align-engraver.cc -- implement Stanza_number_align_engraver + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2004--2015 Han-Wen Nienhuys - (c) 2004--2005 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 "context.hh" @@ -21,15 +32,16 @@ public: TRANSLATOR_DECLARATIONS (Stanza_number_align_engraver); protected: - Link_array lyrics_; - Link_array stanza_numbers_; + vector lyrics_; + vector stanza_numbers_; - DECLARE_ACKNOWLEDGER (lyric_syllable); - DECLARE_ACKNOWLEDGER (stanza_number); + void acknowledge_lyric_syllable (Grob_info); + void acknowledge_stanza_number (Grob_info); void stop_translation_timestep (); }; -Stanza_number_align_engraver::Stanza_number_align_engraver () +Stanza_number_align_engraver::Stanza_number_align_engraver (Context *c) + : Engraver (c) { } @@ -37,33 +49,46 @@ void Stanza_number_align_engraver::acknowledge_lyric_syllable (Grob_info gi) { Grob *h = gi.grob (); - lyrics_.push (h); + lyrics_.push_back (h); } void Stanza_number_align_engraver::acknowledge_stanza_number (Grob_info gi) { Grob *h = gi.grob (); - stanza_numbers_.push (h); + stanza_numbers_.push_back (h); } void Stanza_number_align_engraver::stop_translation_timestep () { - for (int i = lyrics_.size (); i--;) - for (int j = stanza_numbers_.size (); j--;) + for (vsize i = lyrics_.size (); i--;) + for (vsize j = stanza_numbers_.size (); j--;) Side_position_interface::add_support (stanza_numbers_[j], lyrics_[i]); stanza_numbers_.clear (); lyrics_.clear (); } -ADD_ACKNOWLEDGER (Stanza_number_align_engraver,lyric_syllable); -ADD_ACKNOWLEDGER (Stanza_number_align_engraver,stanza_number); + +void +Stanza_number_align_engraver::boot () +{ + ADD_ACKNOWLEDGER (Stanza_number_align_engraver, lyric_syllable); + ADD_ACKNOWLEDGER (Stanza_number_align_engraver, stanza_number); +} + ADD_TRANSLATOR (Stanza_number_align_engraver, - "This engraver ensures that stanza numbers are neatly aligned. ", - "", - "", - " ", - ""); + /* doc */ + "This engraver ensures that stanza numbers are neatly" + " aligned.", + + /* create */ + "", + + /* read */ + "", + + /* write */ + "");