X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmark-engraver.cc;h=0fafc40ae3ece3e369409d5d54d15874aac638c4;hb=refs%2Ftags%2Frelease%2F1.7.18;hp=2aa1de4ae873ee6dc45d33a14fac11f5e0ff11b2;hpb=baf32731650d510882eeb52d02f4ca0c816c7c29;p=lilypond.git diff --git a/lily/mark-engraver.cc b/lily/mark-engraver.cc index 2aa1de4ae8..0fafc40ae3 100644 --- a/lily/mark-engraver.cc +++ b/lily/mark-engraver.cc @@ -3,12 +3,12 @@ source file of the GNU LilyPond music typesetter - (c) 1998--2002 Jan Nieuwenhuizen + (c) 1998--2003 Jan Nieuwenhuizen */ #include #include "bar-line.hh" -#include "command-request.hh" + #include "staff-symbol.hh" #include "engraver-group-engraver.hh" #include "engraver.hh" @@ -19,6 +19,7 @@ #include "staff-symbol-referencer.hh" #include "item.hh" #include "group-interface.hh" +#include "text-item.hh" /** put stuff over or next to bars. Examples: bar numbers, marginal notes, @@ -34,13 +35,13 @@ protected: protected: virtual void stop_translation_timestep (); virtual void acknowledge_grob (Grob_info); - void create_items (Request*); + void create_items (Music*); virtual bool try_music (Music *req); virtual void start_translation_timestep (); virtual void process_music (); private: - Mark_req * mark_req_; + Music * mark_req_; }; @@ -80,7 +81,7 @@ Mark_engraver::stop_translation_timestep () void -Mark_engraver::create_items (Request *rq) +Mark_engraver::create_items (Music *rq) { if (text_) return; @@ -103,16 +104,8 @@ Mark_engraver::start_translation_timestep () bool Mark_engraver::try_music (Music* r) { - if (Mark_req *mr = dynamic_cast (r)) - { - if (mark_req_ && mr->equal_b (mark_req_)) - return true; - if (mark_req_) - return false; - mark_req_ = mr; - return true; - } - return false; + mark_req_ = r; + return true; } @@ -135,6 +128,11 @@ Mark_engraver::process_music () */ SCM m = mark_req_->get_mus_property ("label"); + if (new_markup_p (m)) + { + text_->set_grob_property ("text",m); + text_->set_grob_property ("molecule-callback", new_markup_brewer ()); + } if (gh_pair_p (m)) // markup text text_->set_grob_property ("text",m); else @@ -190,6 +188,7 @@ Mark_engraver::process_music () ENTER_DESCRIPTION(Mark_engraver, /* descr */ "", /* creats*/ "RehearsalMark", -/* acks */ "bar-line-interface", +/* accepts */ "mark-event", +/* acks */ "bar-line-interface", /* reads */ "rehearsalMark stavesFound", /* write */ "");