X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Ftext-spanner-engraver.cc;h=1b66b68f121139530e98d60b42f32fdc553b7666;hb=8659a99f233f5c4684292728e7ad4206669b35b0;hp=f34f494301345329cad032a90c5f6bb39b0db6cd;hpb=958e95822083954cad00e0a598eb9f12ceba67b9;p=lilypond.git diff --git a/lily/text-spanner-engraver.cc b/lily/text-spanner-engraver.cc index f34f494301..1b66b68f12 100644 --- a/lily/text-spanner-engraver.cc +++ b/lily/text-spanner-engraver.cc @@ -34,8 +34,8 @@ public: TRANSLATOR_DECLARATIONS (Text_spanner_engraver); protected: virtual void finalize (); - DECLARE_TRANSLATOR_LISTENER (text_span); - DECLARE_ACKNOWLEDGER (note_column); + void listen_text_span (Stream_event *); + void acknowledge_note_column (Grob_info); void stop_translation_timestep (); void process_music (); @@ -47,7 +47,8 @@ private: void typeset_all (); }; -Text_spanner_engraver::Text_spanner_engraver () +Text_spanner_engraver::Text_spanner_engraver (Context *c) + : Engraver (c) { finished_ = 0; current_event_ = 0; @@ -55,7 +56,6 @@ Text_spanner_engraver::Text_spanner_engraver () event_drul_.set (0, 0); } -IMPLEMENT_TRANSLATOR_LISTENER (Text_spanner_engraver, text_span); void Text_spanner_engraver::listen_text_span (Stream_event *ev) { @@ -87,6 +87,8 @@ Text_spanner_engraver::process_music () { current_event_ = event_drul_[START]; span_ = make_spanner ("TextSpanner", event_drul_[START]->self_scm ()); + if (Direction d = to_dir (current_event_->get_property ("direction"))) + span_->set_property ("direction", scm_from_int (d)); Side_position_interface::set_axis (span_, Y_AXIS); event_drul_[START] = 0; @@ -154,7 +156,13 @@ Text_spanner_engraver::acknowledge_note_column (Grob_info info) } } -ADD_ACKNOWLEDGER (Text_spanner_engraver, note_column); + +void +Text_spanner_engraver::boot () +{ + ADD_LISTENER (Text_spanner_engraver, text_span); + ADD_ACKNOWLEDGER (Text_spanner_engraver, note_column); +} ADD_TRANSLATOR (Text_spanner_engraver, /* doc */