X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fscript-row-engraver.cc;h=0e08362c589725c774b33dce654d88f6c0d8ca54;hb=9453963fa61b32435f55ebfb7180d739aa538a35;hp=4a76c78c52fac00e8448e0ec0531a8418fbee4bb;hpb=bf7b9929425e6a60cc24f1de18e5f1cdc9055703;p=lilypond.git diff --git a/lily/script-row-engraver.cc b/lily/script-row-engraver.cc index 4a76c78c52..0e08362c58 100644 --- a/lily/script-row-engraver.cc +++ b/lily/script-row-engraver.cc @@ -3,12 +3,14 @@ source file of the GNU LilyPond music typesetter - (c) 2006 Han-Wen Nienhuys + (c) 2006--2007 Han-Wen Nienhuys */ - #include "engraver.hh" + +#include "accidental-placement.hh" +#include "item.hh" #include "script-column.hh" #include "side-position-interface.hh" @@ -27,6 +29,7 @@ class Script_row_engraver : public Engraver public: TRANSLATOR_DECLARATIONS (Script_row_engraver); protected: + DECLARE_ACKNOWLEDGER (accidental_placement); DECLARE_ACKNOWLEDGER (side_position); void process_acknowledged (); void stop_translation_timestep (); @@ -43,7 +46,8 @@ Script_row_engraver::stop_translation_timestep () if (script_row_) { for (vsize i = 0; i < scripts_.size (); i++) - if (Side_position_interface::get_axis (scripts_[i]) == X_AXIS) + if (Accidental_placement::has_interface (scripts_[i]) + || Side_position_interface::get_axis (scripts_[i]) == X_AXIS) Script_column::add_side_positioned (script_row_, scripts_[i]); } @@ -62,6 +66,14 @@ Script_row_engraver::acknowledge_side_position (Grob_info inf) } } + +void +Script_row_engraver::acknowledge_accidental_placement (Grob_info inf) +{ + scripts_.push_back (inf.grob ()); +} + + void Script_row_engraver::process_acknowledged () { @@ -70,10 +82,10 @@ Script_row_engraver::process_acknowledged () } +ADD_ACKNOWLEDGER (Script_row_engraver, accidental_placement); ADD_ACKNOWLEDGER (Script_row_engraver, side_position); ADD_TRANSLATOR (Script_row_engraver, /* doc */ "Determine order in horizontal side position elements. ", /* create */ "ScriptRow ", - /* accept */ "", /* read */ "", /* write */ "");