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