/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1999--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1999--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
virtual void derived_mark () const;
public:
TRANSLATOR_DECLARATIONS (Break_align_engraver);
- DECLARE_ACKNOWLEDGER (break_aligned);
- DECLARE_ACKNOWLEDGER (break_alignable);
+ void acknowledge_break_aligned (Grob_info);
+ void acknowledge_break_alignable (Grob_info);
};
void
left_edge_ = 0;
}
-Break_align_engraver::Break_align_engraver ()
+Break_align_engraver::Break_align_engraver (Context *c)
+ : Engraver (c)
{
column_alist_ = SCM_EOL;
left_edge_ = 0;
Context *origin = inf.origin_contexts (this)[0];
Translator_group *tg = origin->implementation ();
- Engraver *random_source = dynamic_cast<Engraver *> (Translator::unsmob (scm_car (tg->get_simple_trans_list ())));
+ Engraver *random_source = unsmob<Engraver> (scm_car (tg->get_simple_trans_list ()));
if (!random_source)
random_source = this;
SCM s = scm_assoc (align_name, column_alist_);
Item *group = 0;
- if (s != SCM_BOOL_F)
+ if (scm_is_true (s))
{
- Grob *e = Grob::unsmob (scm_cdr (s));
+ Grob *e = unsmob<Grob> (scm_cdr (s));
group = dynamic_cast<Item *> (e);
}
else
Axis_group_interface::add_element (group, item);
}
-ADD_ACKNOWLEDGER (Break_align_engraver, break_aligned);
-ADD_ACKNOWLEDGER (Break_align_engraver, break_alignable);
+void
+Break_align_engraver::boot ()
+{
+ ADD_ACKNOWLEDGER (Break_align_engraver, break_aligned);
+ ADD_ACKNOWLEDGER (Break_align_engraver, break_alignable);
+}
+
ADD_TRANSLATOR (Break_align_engraver,
/* doc */
"Align grobs with corresponding @code{break-align-symbols}"