X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fscript-row-engraver.cc;h=21a227228cd76ee0dd1d7a8aa515310a85e96f86;hb=ba9d8e2f35cd29eefe9e7cca978cdd6f5d44e776;hp=3f81f54380639ed551d9bd744cfbb8b6d534630e;hpb=358d6e99ada8019268ade9ba9080b2d0d88eeb7a;p=lilypond.git diff --git a/lily/script-row-engraver.cc b/lily/script-row-engraver.cc index 3f81f54380..21a227228c 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--2009 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,9 +82,18 @@ 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 ", - /* read */ "", - /* write */ ""); + /* doc */ + "Determine order in horizontal side position elements.", + + /* create */ + "ScriptRow ", + + /* read */ + "", + + /* write */ + "" + );