]> git.donarmstrong.com Git - lilypond.git/blob - lily/staff-collecting-engraver.cc
* lily/include/translator.icc (ADD_ACKNOWLEDGER): new macro.
[lilypond.git] / lily / staff-collecting-engraver.cc
1 /*
2   staff-collecting-engraver.cc -- implement Staff_collecting_engraver
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2001--2005  Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9 #include "staff-symbol.hh"
10 #include "engraver.hh"
11 #include "grob.hh"
12 #include "context.hh"
13
14 class Staff_collecting_engraver : public Engraver
15 {
16 public:
17   TRANSLATOR_DECLARATIONS (Staff_collecting_engraver);
18   DECLARE_ACKNOWLEDGER(staff_symbol);
19 };
20
21 Staff_collecting_engraver::Staff_collecting_engraver ()
22 {
23 }
24
25 void
26 Staff_collecting_engraver::acknowledge_staff_symbol (Grob_info gi)
27 {
28   SCM staffs = get_property ("stavesFound");
29   staffs = scm_cons (gi.grob ()->self_scm (), staffs);
30
31   context ()->set_property ("stavesFound", staffs);
32 }
33
34 #include "translator.icc"
35 ADD_ACKNOWLEDGER(Staff_collecting_engraver,staff_symbol);
36
37 ADD_TRANSLATOR (Staff_collecting_engraver,
38                 /* descr */ "Maintain the stavesFound variable",
39
40                 /* creats*/ "",
41                 /* accepts */ "",
42                 /* acks  */ "",
43                 /* reads */ "stavesFound",
44                 /* write */ "stavesFound");