]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/property-iterator.hh
Update.
[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--2005 Han-Wen Nienhuys <hanwen@cs.uu.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
23 protected:
24   virtual void do_quit ();
25   virtual void process (Moment);
26 };
27
28 /**
29    Iterate a property.
30 */
31 class Property_unset_iterator : public Simple_music_iterator
32 {
33 public:
34   DECLARE_SCHEME_CALLBACK (constructor, ());
35 protected:
36   virtual void process (Moment);
37 };
38
39 class Push_property_iterator : public Simple_music_iterator
40 {
41 public:
42   DECLARE_SCHEME_CALLBACK (constructor, ());
43   DECLARE_SCHEME_CALLBACK (once_finalization, (SCM, SCM));
44 protected:
45   virtual void process (Moment);
46   virtual void do_quit ();
47 };
48
49 class Pop_property_iterator : public Simple_music_iterator
50 {
51 public:
52   DECLARE_SCHEME_CALLBACK (constructor, ());
53 protected:
54   virtual void process (Moment);
55 };
56
57 #endif // PROPERTY_ITERATOR_HH