]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/property-iterator.hh
* VERSION (MY_PATCH_LEVEL): make 1.7.0
[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--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef PROPERTY_ITERATOR_HH
11 #define PROPERTY_ITERATOR_HH
12
13 #include "simple-music-iterator.hh"
14
15
16
17
18 /**
19   Iterate a property.  
20  */
21 class Property_iterator : public Simple_music_iterator
22 {
23 public:
24   VIRTUAL_COPY_CONS (Music_iterator);
25   DECLARE_SCHEME_CALLBACK(constructor, ());
26   DECLARE_SCHEME_CALLBACK(once_finalization, (SCM, SCM ));
27
28 protected:
29   virtual void do_quit();
30   virtual void process (Moment);
31 };
32
33
34
35
36 /**
37   Iterate a property.  
38  */
39 class Property_unset_iterator : public Simple_music_iterator
40 {
41 public:
42   VIRTUAL_COPY_CONS (Music_iterator);
43   DECLARE_SCHEME_CALLBACK(constructor, ());
44 protected:
45   virtual void process (Moment);
46 };
47
48 class Push_property_iterator : public Simple_music_iterator
49 {
50 public:
51   VIRTUAL_COPY_CONS (Music_iterator);
52   DECLARE_SCHEME_CALLBACK(constructor, ());  
53   DECLARE_SCHEME_CALLBACK(once_finalization, (SCM, SCM));
54 protected:
55   virtual void process (Moment);
56   virtual void do_quit();
57 };
58
59 class Pop_property_iterator : public Simple_music_iterator
60 {
61 public:
62   DECLARE_SCHEME_CALLBACK(constructor, ());
63   VIRTUAL_COPY_CONS (Music_iterator);
64 protected:
65   virtual void process (Moment);
66 };
67
68
69 #endif // PROPERTY_ITERATOR_HH