X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fgrid-line-span-engraver.cc;h=1fd00e805205bb4f68e53bf0172736d9176ff0ea;hb=7c83ac2d86066ca8f41260d37e792e166ad5dbb6;hp=e138dca2a48d9154a10a42c2fe1e4d676b8c7db0;hpb=2cd24831defba0e63223a55cf20b3bac5608be4f;p=lilypond.git diff --git a/lily/grid-line-span-engraver.cc b/lily/grid-line-span-engraver.cc index e138dca2a4..1fd00e8052 100644 --- a/lily/grid-line-span-engraver.cc +++ b/lily/grid-line-span-engraver.cc @@ -3,8 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 2005 Han-Wen Nienhuys - + (c) 2005--2007 Han-Wen Nienhuys */ #include "engraver.hh" @@ -14,13 +13,13 @@ class Grid_line_span_engraver : public Engraver { Item *spanline_; - Link_array lines_; + vector lines_; public: TRANSLATOR_DECLARATIONS (Grid_line_span_engraver); protected: - virtual void acknowledge_grob (Grob_info); - virtual void stop_translation_timestep (); + DECLARE_ACKNOWLEDGER (grid_point); + void stop_translation_timestep (); }; Grid_line_span_engraver::Grid_line_span_engraver () @@ -29,13 +28,13 @@ Grid_line_span_engraver::Grid_line_span_engraver () } void -Grid_line_span_engraver::acknowledge_grob (Grob_info i) +Grid_line_span_engraver::acknowledge_grid_point (Grob_info i) { int depth = i.origin_contexts (this).size (); - if (depth && i.grob_->internal_has_interface (ly_symbol2scm ("grid-point-interface"))) + if (depth) { - Item *it = dynamic_cast (i.grob_); - lines_.push (it); + Item *it = dynamic_cast (i.grob ()); + lines_.push_back (it); if (lines_.size () >= 2 && !spanline_) { @@ -50,19 +49,27 @@ Grid_line_span_engraver::stop_translation_timestep () { if (spanline_) { - for (int i = 0; i < lines_.size (); i++) + for (vsize i = 0; i < lines_.size (); i++) Grid_line_interface::add_grid_point (spanline_, lines_[i]); spanline_ = 0; } - lines_.set_size (0); + lines_.resize (0); } +#include "translator.icc" +ADD_ACKNOWLEDGER (Grid_line_span_engraver, grid_point); ADD_TRANSLATOR (Grid_line_span_engraver, - /* descr */ "This engraver makes cross-staff linelines: It catches all normal " - "line lines, and draws a single span-line across them.", - /* creats*/ "GridLine", - /* accepts */ "", - /* acks */ "grid-point-interface", - /* reads */ "", - /* write */ ""); + /* doc */ + "This engraver makes cross-staff lines: It catches all normal" + " lines and draws a single span line across them.", + + /* create */ + "GridLine ", + + /* read */ + "", + + /* write */ + "" + );