class Mark_engraver : public Engraver
{
public:
- TRANSLATOR_DECLARATIONS(Mark_engraver);
+ TRANSLATOR_DECLARATIONS (Mark_engraver);
protected:
- Item* text_;
-
+ Item *text_;
protected:
virtual void stop_translation_timestep ();
virtual void acknowledge_grob (Grob_info);
{
if (text_)
{
- text_->set_property ("side-support-elements" , get_property ("stavesFound"));
- typeset_grob (text_);
+ SCM lst = get_property ("stavesFound");
+ text_->set_property ("side-support-elements" , lst);
text_ =0;
}
mark_ev_ = 0;
if (text_)
return;
- text_ = make_item ("RehearsalMark");
- announce_grob(text_, ev->self_scm());
+ text_ = make_item ("RehearsalMark", ev->self_scm ());
}
/*
-
TODO: make the increment function in Scheme.
-
-
- TODO: junk the number type for rehearsalMark
*/
void
Mark_engraver::process_music ()
SCM m = mark_ev_->get_property ("label");
SCM proc = get_property ("markFormatter");
if (!Text_item::markup_p (m) &&
- gh_procedure_p (proc))
+ ly_c_procedure_p (proc))
{
- if (!gh_number_p (m))
+ if (!ly_c_number_p (m))
m = get_property ("rehearsalMark");
if (scm_integer_p (m) == SCM_BOOL_T
&& scm_exact_p (m) == SCM_BOOL_T)
{
- int mark_count = gh_scm2int (m);
+ int mark_count = ly_scm2int (m);
mark_count ++;
- daddy_context_->set_property ("rehearsalMark",
- gh_int2scm (mark_count));
+ context ()->set_property ("rehearsalMark",
+ scm_int2num (mark_count));
}
- if (gh_number_p (m))
- m = scm_call_2 (proc, m, daddy_context_->self_scm ());
+ if (ly_c_number_p (m))
+ m = scm_call_2 (proc, m, context ()->self_scm ());
else
warning ("rehearsalMark does not have integer value.");
}
}
}
-ENTER_DESCRIPTION(Mark_engraver,
-/* descr */ "",
+ENTER_DESCRIPTION (Mark_engraver,
+/* descr */ "This engraver will create RehearsalMark objects. "
+ "It puts them on top of all staves (which is taken from "
+ "the property @code{stavesFound}). If moving this engraver "
+ "to a different context, "
+ "@ref{Staff_collecting_engraver} must move along, otherwise all marks"
+ "end up on the same Y-location"
+ ,
/* creats*/ "RehearsalMark",
/* accepts */ "mark-event",
/* acks */ "bar-line-interface",