X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fhara-kiri-engraver.cc;h=243d9cbaf54e29e6ebb3ccf766778b00af1ae187;hb=8019ff784cd3aa6cc43b8eb8f29a621bc5800f5c;hp=3b93a0d93b5ef60e6333e833eb84491b00ff5642;hpb=91821bd59959b1289f2d711509017a4dacebecd2;p=lilypond.git diff --git a/lily/hara-kiri-engraver.cc b/lily/hara-kiri-engraver.cc index 3b93a0d93b..243d9cbaf5 100644 --- a/lily/hara-kiri-engraver.cc +++ b/lily/hara-kiri-engraver.cc @@ -1,10 +1,20 @@ /* - hara-kiri-engraver.cc -- implement Hara_kiri_engraver + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2005--2012 Han-Wen Nienhuys - (c) 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 "axis-group-engraver.hh" @@ -14,44 +24,51 @@ #include "translator.icc" +/* + TODO: fold together with axis_group_engraver? + */ + class Hara_kiri_engraver : public Axis_group_engraver { protected: virtual Spanner *get_spanner (); DECLARE_ACKNOWLEDGER (grob); virtual void add_element (Grob *e); - void start_translation_timestep (); + void process_music (); virtual void derived_mark () const; SCM interesting_; public: TRANSLATOR_DECLARATIONS (Hara_kiri_engraver); }; +Hara_kiri_engraver::Hara_kiri_engraver () +{ + interesting_ = SCM_EOL; +} + void Hara_kiri_engraver::derived_mark () const { scm_gc_mark (interesting_); } - + void -Hara_kiri_engraver::start_translation_timestep () +Hara_kiri_engraver::process_music () { - Axis_group_engraver::start_translation_timestep (); + Axis_group_engraver::process_music (); interesting_ = get_property ("keepAliveInterfaces"); } - void Hara_kiri_engraver::add_element (Grob *e) { - Hara_kiri_group_spanner::add_element (staffline_, e); + Axis_group_engraver::add_element (e); } Spanner * Hara_kiri_engraver::get_spanner () { - Spanner *sp = make_spanner ("RemoveEmptyVerticalGroup", SCM_EOL); - + Spanner *sp = make_spanner ("VerticalAxisGroup", SCM_EOL); return sp; } @@ -62,25 +79,27 @@ Hara_kiri_engraver::acknowledge_grob (Grob_info i) if (staffline_) { for (SCM s = interesting_; scm_is_pair (s); s = scm_cdr (s)) - { - if (i.grob ()->internal_has_interface (scm_car (s))) - Hara_kiri_group_spanner::add_interesting_item (staffline_, i.grob ()); - } + { + if (i.grob ()->internal_has_interface (scm_car (s))) + Hara_kiri_group_spanner::add_interesting_item (staffline_, i.grob ()); + } } } -Hara_kiri_engraver::Hara_kiri_engraver () -{ - interesting_ = SCM_EOL; -} - - ADD_ACKNOWLEDGER (Hara_kiri_engraver, grob); ADD_TRANSLATOR (Hara_kiri_engraver, - /* doc */ "Like Axis_group_engraver, but make a hara-kiri spanner, and add " - "interesting items (ie. note heads, lyric syllables and normal rests) ", - /* create */ "RemoveEmptyVerticalGroup", - /* accept */ "", - /* read */ "keepAliveInterfaces", - /* write */ ""); + /* doc */ + "Like @code{Axis_group_engraver}, but make a hara-kiri" + " spanner, and add interesting items (i.e., note heads, lyric" + " syllables, and normal rests).", + + /* create */ + "VerticalAxisGroup ", + + /* read */ + "keepAliveInterfaces ", + + /* write */ + "" + );