2 hyphen-engraver.cc -- implement Hyphen_engraver
4 (c) 1999 Glen Prideaux <glenprideaux@iname.com>
8 #include "musical-request.hh"
9 #include "hyphen-engraver.hh"
10 #include "hyphen-spanner.hh"
11 #include "paper-column.hh"
12 #include "text-item.hh"
14 ADD_THIS_TRANSLATOR (Hyphen_engraver);
16 Hyphen_engraver::Hyphen_engraver ()
20 hyphen_spanner_p_ = 0;
25 Hyphen_engraver::acknowledge_element (Score_element_info i)
27 if (Text_item* t = dynamic_cast<Text_item*> (i.elem_l_))
31 && !hyphen_spanner_p_->get_bound (RIGHT)
34 hyphen_spanner_p_->set_textitem (RIGHT, t);
41 Hyphen_engraver::do_try_music (Music* r)
43 if (Hyphen_req* p = dynamic_cast <Hyphen_req *> (r))
55 Hyphen_engraver::do_removal_processing ()
57 if (hyphen_spanner_p_)
59 req_l_->warning (_ ("unterminated hyphen"));
60 hyphen_spanner_p_->set_bound(RIGHT, get_staff_info ().command_pcol_l ());
65 Hyphen_engraver::do_process_music ()
71 req_l_->warning (_ ("Nothing to connect hyphen to on the left. Ignoring hyphen request."));
75 hyphen_spanner_p_ = new Hyphen_spanner (get_property ("basicHyphenSpannerProperties"));
76 hyphen_spanner_p_->set_textitem (LEFT, last_lyric_l_);
77 announce_element (Score_element_info (hyphen_spanner_p_, req_l_));
83 Hyphen_engraver::do_pre_move_processing ()
85 if (hyphen_spanner_p_)
87 typeset_element (hyphen_spanner_p_);
88 hyphen_spanner_p_ = 0;
93 last_lyric_l_ = current_lyric_l_;
99 Hyphen_engraver::do_post_move_processing ()