2 request.hh -- declare Request baseclasses.
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
11 // GNU LilyPond's second egg of columbus!
16 #include "virtual-methods.hh"
20 a voice element wants something printed.
21 Hungarian postfix: req
24 class Request : public Input {
31 Request(Request const&);
34 NAME_MEMBERS(Request);
35 virtual Request* clone() const { return new Request(*this); }
38 virtual void transpose(Melodic_req const &){}
39 virtual Moment duration() const { return 0; }
41 /* accessors for children
44 virtual Barcheck_req *barcheck() { return 0; }
45 virtual Note_req *note() { return 0;}
46 virtual Script_req *script() { return 0;}
47 virtual Stem_req *stem() { return 0;}
48 virtual Text_req*text() { return 0; }
49 virtual Rest_req *rest() { return 0; }
50 virtual Span_req *span() { return 0; }
51 virtual Beam_req *beam() { return 0 ; }
52 virtual Plet_req* plet() { return 0; }
53 virtual Slur_req *slur() { return 0 ; }
54 virtual Rhythmic_req*rhythmic() { return 0; }
55 virtual Lyric_req* lreq_l() { return 0; }
56 virtual Melodic_req *melodic() { return 0; }
57 virtual Spacing_req * spacing() { return 0; }
58 virtual Blank_req * blank() { return 0; }
59 virtual Musical_req *musical() { return 0; }
60 virtual Command_req * command() { return 0; }
62 virtual void do_print()const ;
65 #define REQUESTMETHODS(T,accessor) \
66 virtual T * accessor() { return this;}\
68 VIRTUAL_COPY_CONS(T, Request)\
69 virtual void do_print() const