X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpure-from-neighbor-engraver.cc;h=cea3936161c4c62357250ca9ca664b7a00275bcb;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=bfb560925335d0ca70512e26ddcd6ef2c2fd974c;hpb=01df8ad908c92687d0c352e5ad5f067e52809423;p=lilypond.git diff --git a/lily/pure-from-neighbor-engraver.cc b/lily/pure-from-neighbor-engraver.cc index bfb5609253..cea3936161 100644 --- a/lily/pure-from-neighbor-engraver.cc +++ b/lily/pure-from-neighbor-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2011--2012 Mike Solomon + Copyright (C) 2011--2015 Mike Solomon LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,6 +26,8 @@ #include "pure-from-neighbor-interface.hh" #include "engraver.hh" +#include "translator.icc" + class Pure_from_neighbor_engraver : public Engraver { vector pure_relevants_; @@ -34,21 +36,20 @@ class Pure_from_neighbor_engraver : public Engraver public: TRANSLATOR_DECLARATIONS (Pure_from_neighbor_engraver); protected: - DECLARE_ACKNOWLEDGER (pure_from_neighbor); - DECLARE_ACKNOWLEDGER (item); + void acknowledge_pure_from_neighbor (Grob_info); + void acknowledge_item (Grob_info); void finalize (); }; -Pure_from_neighbor_engraver::Pure_from_neighbor_engraver () +Pure_from_neighbor_engraver::Pure_from_neighbor_engraver (Context *c) + : Engraver (c) { } void Pure_from_neighbor_engraver::acknowledge_item (Grob_info i) { - SCM pure_relevant_p = ly_lily_module_constant ("pure-relevant?"); - if (!Pure_from_neighbor_interface::has_interface (i.item ()) - && to_boolean (scm_call_1 (pure_relevant_p, i.item ()->self_scm ()))) + if (!has_interface (i.item ())) pure_relevants_.push_back (i.item ()); } @@ -136,10 +137,13 @@ Pure_from_neighbor_engraver::finalize () pure_relevants_.clear (); } -#include "translator.icc" +void +Pure_from_neighbor_engraver::boot () +{ + ADD_ACKNOWLEDGER (Pure_from_neighbor_engraver, item); + ADD_ACKNOWLEDGER (Pure_from_neighbor_engraver, pure_from_neighbor); +} -ADD_ACKNOWLEDGER (Pure_from_neighbor_engraver, item); -ADD_ACKNOWLEDGER (Pure_from_neighbor_engraver, pure_from_neighbor); ADD_TRANSLATOR (Pure_from_neighbor_engraver, /* doc */ "Coordinates items that get their pure heights from their neighbors.",