/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1998--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1998--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
Spacings current_spacings_;
Spacings last_spacings_;
- DECLARE_ACKNOWLEDGER (item);
- DECLARE_ACKNOWLEDGER (break_aligned);
+ void acknowledge_item (Grob_info);
+ void acknowledge_break_aligned (Grob_info);
void stop_translation_timestep ();
void start_translation_timestep ();
TRANSLATOR_DECLARATIONS (Separating_line_group_engraver);
};
-Separating_line_group_engraver::Separating_line_group_engraver ()
+Separating_line_group_engraver::Separating_line_group_engraver (Context *c)
+ : Engraver (c)
{
}
{
Item *it = i.item ();
- if (Note_spacing::has_interface (it))
+ if (has_interface<Note_spacing> (it))
{
current_spacings_.note_spacings_.push_back (it);
return;
&& !current_spacings_.staff_spacing_
&& to_boolean (get_property ("createSpacing")))
{
- Grob *col = unsmob_grob (get_property ("currentCommandColumn"));
+ Grob *col = unsmob<Grob> (get_property ("currentCommandColumn"));
current_spacings_.staff_spacing_ = make_item ("StaffSpacing", SCM_EOL);
context ()->set_property ("hasStaffSpacing", SCM_BOOL_T);
&& last_spacings_.staff_spacing_)
{
SCM ri = last_spacings_.staff_spacing_->get_object ("right-items");
- Grob_array *ga = unsmob_grob_array (ri);
+ Grob_array *ga = unsmob<Grob_array> (ri);
if (!ga)
{
SCM ga_scm = Grob_array::make_array ();
last_spacings_.staff_spacing_->set_object ("right-items", ga_scm);
- ga = unsmob_grob_array (ga_scm);
+ ga = unsmob<Grob_array> (ga_scm);
}
ga->clear ();
last_spacings_ = current_spacings_;
if (Item *sp = current_spacings_.staff_spacing_)
- if (Grob *col = unsmob_grob (get_property ("currentMusicalColumn")))
+ if (Grob *col = unsmob<Grob> (get_property ("currentMusicalColumn")))
Pointer_group_interface::add_grob (sp, ly_symbol2scm ("right-items"), col);
current_spacings_.clear ();
break_aligned_.clear ();
}
-ADD_ACKNOWLEDGER (Separating_line_group_engraver, item);
-ADD_ACKNOWLEDGER (Separating_line_group_engraver, break_aligned);
+
+void
+Separating_line_group_engraver::boot ()
+{
+ ADD_ACKNOWLEDGER (Separating_line_group_engraver, item);
+ ADD_ACKNOWLEDGER (Separating_line_group_engraver, break_aligned);
+}
ADD_TRANSLATOR (Separating_line_group_engraver,
/* doc */