#include "side-position-interface.hh"
#include "translator.icc"
+#include "lily-imports.hh"
class Clef_engraver : public Engraver
{
protected:
void stop_translation_timestep ();
void process_music ();
- DECLARE_ACKNOWLEDGER (bar_line);
+ void acknowledge_bar_line (Grob_info);
virtual void derived_mark () const;
private:
scm_gc_mark (prev_glyph_);
}
-Clef_engraver::Clef_engraver ()
+Clef_engraver::Clef_engraver (Context *c)
+ : Engraver (c)
{
clef_ = 0;
modifier_ = 0;
scm_call_1 (fun, context->self_scm ());
for (SCM s = context->children_contexts ();
scm_is_pair (s); s = scm_cdr (s))
- apply_on_children (Context::unsmob (scm_car (s)), fun);
+ apply_on_children (unsmob<Context> (scm_car (s)), fun);
}
void
|| !ly_is_equal (transposition, prev_transposition_)
|| to_boolean (force_clef))
{
- apply_on_children (context (),
- ly_lily_module_constant ("invalidate-alterations"));
+ apply_on_children (context (), Lily::invalidate_alterations);
set_glyph ();
if (scm_is_true (prev_cpos_) || to_boolean (get_property ("firstClef")))
{
if (clef_)
{
- SCM vis = 0;
if (to_boolean (clef_->get_property ("non-default")))
- vis = get_property ("explicitClefVisibility");
+ {
+ SCM vis = get_property ("explicitClefVisibility");
- if (vis)
- clef_->set_property ("break-visibility", vis);
+ if (scm_is_vector (vis))
+ clef_->set_property ("break-visibility", vis);
+ }
clef_ = 0;
}
}
-ADD_ACKNOWLEDGER (Clef_engraver, bar_line);
+void
+Clef_engraver::boot ()
+{
+ ADD_ACKNOWLEDGER (Clef_engraver, bar_line);
+}
+
ADD_TRANSLATOR (Clef_engraver,
/* doc */
"Determine and set reference point for pitches.",