]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/property-iterator.hh
Run `make grand-replace'.
[lilypond.git] / lily / include / property-iterator.hh
1 /*
2   property-iterator.hh -- declare Property_iterator
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
7 */
8
9 #ifndef PROPERTY_ITERATOR_HH
10 #define PROPERTY_ITERATOR_HH
11
12 #include "simple-music-iterator.hh"
13
14 /**
15    Iterate a property.
16 */
17 class Property_iterator : public Simple_music_iterator
18 {
19 public:
20   DECLARE_SCHEME_CALLBACK (constructor, ());
21   DECLARE_SCHEME_CALLBACK (once_finalization, (SCM, SCM));
22   DECLARE_CLASSNAME(Property_iterator);
23
24 protected:
25   virtual void do_quit ();
26   virtual void process (Moment);
27 };
28
29 /**
30    Iterate a property.
31 */
32 class Property_unset_iterator : public Simple_music_iterator
33 {
34 public:
35   DECLARE_SCHEME_CALLBACK (constructor, ());
36   DECLARE_CLASSNAME(Property_unset_iterator);
37 protected:
38   virtual void process (Moment);
39 };
40
41 class Push_property_iterator : public Simple_music_iterator
42 {
43 public:
44   DECLARE_SCHEME_CALLBACK (constructor, ());
45   DECLARE_SCHEME_CALLBACK (once_finalization, (SCM, SCM));
46   DECLARE_CLASSNAME(Push_property_iterator);
47 protected:
48   virtual void process (Moment);
49   virtual void do_quit ();
50 };
51
52 class Pop_property_iterator : public Simple_music_iterator
53 {
54 public:
55   DECLARE_SCHEME_CALLBACK (constructor, ());
56   DECLARE_CLASSNAME(Pop_property_iterator);
57 protected:
58   virtual void process (Moment);
59 };
60
61 #endif // PROPERTY_ITERATOR_HH