* The grand 2005-2006 replace.
[lilypond/patrick.git] / lily / include / music-wrapper-iterator.hh
blob41ede2711e4fed7e93ef6afa4d8395c2ae55644c
1 /*
2 music-wrapper-iterator.hh -- declare Music_wrapper_iterator
4 source file of the GNU LilyPond music typesetter
6 (c) 1998--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
7 */
9 #ifndef MUSIC_WRAPPER_ITERATOR_HH
10 #define MUSIC_WRAPPER_ITERATOR_HH
12 #include "music.hh"
13 #include "music-iterator.hh"
15 /**
16 The iterator for a #Music_wrapper#. Since #Music_wrapper# essentially
17 does nothing, this iterator creates a child iterator and delegates
18 all work to that child.
20 class Music_wrapper_iterator : public Music_iterator
22 public:
23 DECLARE_SCHEME_CALLBACK (constructor, ());
24 Music_wrapper_iterator ();
25 DECLARE_CLASSNAME(Music_wrapper_iterator);
27 virtual void derived_substitute (Context *f, Context *t);
28 virtual void derived_mark () const;
29 virtual void construct_children ();
30 virtual Moment pending_moment () const;
31 virtual void do_quit ();
32 virtual bool ok () const;
33 virtual bool run_always () const;
34 protected:
35 virtual void process (Moment);
36 virtual Music_iterator *try_music_in_children (Music *) const;
38 Music_iterator *child_iter_;
41 #endif /* MUSIC_WRAPPER_ITERATOR_HH */