]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/property-iterator.hh
* flower
[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 /**
16    Iterate a property.
17 */
18 class Property_iterator : public Simple_music_iterator
19 {
20 public:
21   DECLARE_SCHEME_CALLBACK (constructor, ());
22   DECLARE_SCHEME_CALLBACK (once_finalization, (SCM, SCM));
23
24 protected:
25   virtual void do_quit ();
26   virtual void process (Moment);
27 };
28
29
30 /**
31    Iterate a property.
32 */
33 class Property_unset_iterator : public Simple_music_iterator
34 {
35 public:
36   DECLARE_SCHEME_CALLBACK (constructor, ());
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 protected:
47   virtual void process (Moment);
48   virtual void do_quit ();
49 };
50
51 class Pop_property_iterator : public Simple_music_iterator
52 {
53 public:
54   DECLARE_SCHEME_CALLBACK (constructor, ());
55 protected:
56   virtual void process (Moment);
57 };
58
59 #endif // PROPERTY_ITERATOR_HH