X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpure-from-neighbor-engraver.cc;h=cea3936161c4c62357250ca9ca664b7a00275bcb;hb=b872748c6aa8bb721ced458691b38ac2fac5dfc8;hp=413bfe5215d2b5c29e8b08e7799981071aa32bab;hpb=30339cb3706f6399c84607426988b25f79b4998c;p=lilypond.git diff --git a/lily/pure-from-neighbor-engraver.cc b/lily/pure-from-neighbor-engraver.cc index 413bfe5215..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 ()); } @@ -124,22 +125,25 @@ Pure_from_neighbor_engraver::finalize () for (vsize k = 0; k < need_pure_heights_from_neighbors[pos[j]].size (); k++) - if (!in_same_column(need_pure_heights_from_neighbors[pos[j]][k], - pure_relevants_[i])) + if (!in_same_column (need_pure_heights_from_neighbors[pos[j]][k], + pure_relevants_[i])) Pointer_group_interface::add_grob - (need_pure_heights_from_neighbors[pos[j]][k], - ly_symbol2scm ("neighbors"), - pure_relevants_[i]); + (need_pure_heights_from_neighbors[pos[j]][k], + ly_symbol2scm ("neighbors"), + pure_relevants_[i]); } need_pure_heights_from_neighbors_.clear (); 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.",