X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fextender-engraver.cc;h=d3ae21945fa40cecceb08272dbf30e8dcec32fa6;hb=6eb2e2f71f9895b58a01693a94ea84a432bb3766;hp=4be468180ce1e85cc2086cb63c19bdb9c813a057;hpb=0af2486a28f1c60b9de929a9101964d880927e54;p=lilypond.git diff --git a/lily/extender-engraver.cc b/lily/extender-engraver.cc index 4be468180c..d3ae21945f 100644 --- a/lily/extender-engraver.cc +++ b/lily/extender-engraver.cc @@ -6,7 +6,7 @@ */ -#include "proto.hh" +#include "flower-proto.hh" #include "musical-request.hh" #include "lyric-extender.hh" #include "paper-column.hh" @@ -28,8 +28,8 @@ then. */ class Extender_engraver : public Engraver { - Score_element *last_lyric_l_; - Score_element *current_lyric_l_; + Grob *last_lyric_l_; + Grob *current_lyric_l_; Extender_req* req_l_; Spanner* extender_p_; public: @@ -37,12 +37,12 @@ public: VIRTUAL_COPY_CONS (Translator); protected: - virtual void acknowledge_element (Score_element_info); - virtual void do_removal_processing(); - virtual void do_process_music(); - virtual bool do_try_music (Music*); - virtual void do_pre_move_processing(); - virtual void do_post_move_processing (); + virtual void acknowledge_grob (Grob_info); + virtual void finalize (); + virtual bool try_music (Music*); + virtual void stop_translation_timestep (); + virtual void start_translation_timestep (); + virtual void process_music (); private: }; @@ -59,25 +59,24 @@ Extender_engraver::Extender_engraver () } void -Extender_engraver::acknowledge_element (Score_element_info i) +Extender_engraver::acknowledge_grob (Grob_info i) { // -> text_item - if (i.elem_l_->has_interface (ly_symbol2scm("text-item-interface"))) - + if (i.elem_l_->has_interface (ly_symbol2scm ("lyric-syllable-interface"))) { current_lyric_l_ = i.elem_l_; if (extender_p_ && !extender_p_->get_bound (RIGHT) ) { - Lyric_extender(extender_p_).set_textitem (RIGHT, dynamic_cast (i.elem_l_)); + Lyric_extender::set_textitem (extender_p_, RIGHT, dynamic_cast (i.elem_l_)); } } } bool -Extender_engraver::do_try_music (Music* r) +Extender_engraver::try_music (Music* r) { if (Extender_req* p = dynamic_cast (r)) { @@ -91,41 +90,41 @@ Extender_engraver::do_try_music (Music* r) } void -Extender_engraver::do_removal_processing () +Extender_engraver::finalize () { if (extender_p_) { - req_l_->warning (_ ("unterminated extender")); - extender_p_->set_bound(RIGHT, unsmob_element (get_property ("currentCommandColumn"))); + req_l_->origin ()->warning (_ ("unterminated extender")); + extender_p_->set_bound (RIGHT, unsmob_grob (get_property ("currentCommandColumn"))); } } void -Extender_engraver::do_process_music () +Extender_engraver::process_music () { - if (req_l_) + if (req_l_ && ! extender_p_) { if (!last_lyric_l_) { - req_l_->warning (_ ("Nothing to connect extender to on the left. Ignoring extender request.")); + req_l_->origin ()->warning (_ ("Nothing to connect extender to on the left. Ignoring extender request.")); return; } - extender_p_ = new Spanner (get_property ("basicLyricExtenderProperties")); - extender_p_->set_extent_callback (Score_element::point_dimension_callback, Y_AXIS); + extender_p_ = new Spanner (get_property ("LyricExtender")); + - Lyric_extender (extender_p_).set_textitem (LEFT, last_lyric_l_); - announce_element (Score_element_info (extender_p_, req_l_)); + Lyric_extender::set_textitem (extender_p_, LEFT, last_lyric_l_); + announce_grob (extender_p_, req_l_); } } void -Extender_engraver::do_pre_move_processing () +Extender_engraver::stop_translation_timestep () { if (extender_p_) { - typeset_element (extender_p_); + typeset_grob (extender_p_); extender_p_ = 0; } @@ -137,7 +136,7 @@ Extender_engraver::do_pre_move_processing () } void -Extender_engraver::do_post_move_processing () +Extender_engraver::start_translation_timestep () { req_l_ = 0; }