]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/request-chord-iterator.hh
5d6602add1cf34a7ed1f938ee57a9c5a08696a62
[lilypond.git] / lily / include / request-chord-iterator.hh
1 /*
2   request-iter.hh -- declare Request_chord_iterator
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef REQUEST_ITER_HH
11 #define REQUEST_ITER_HH
12
13 #include "simple-music-iterator.hh"
14
15 /**
16    Walk through a Request_chord
17  */
18 class Request_chord_iterator : public Simple_music_iterator
19 {
20   Request_chord * elt_l () const;
21   /**
22      Find a bottom notation context to deliver requests to.
23    */
24   virtual Translator_group* get_req_translator_l ();
25
26
27   /*
28     Since Request_chord_iterator has no list-cursor internally, we
29     must use a status variable to adminstrate where we are */
30   
31   enum { NONE_DONE, START_DONE, END_DONE }  status_;
32 public:
33   VIRTUAL_COPY_CONS (Music_iterator);
34   Request_chord_iterator ();
35   Request_chord_iterator (Request_chord_iterator const&);
36
37   virtual SCM get_music (Moment) const;
38 protected:
39   virtual void process (Moment);
40   virtual void construct_children();
41 };
42
43
44 #endif // REQUEST_ITER_HH