2 request.hh -- declare Request baseclasses.
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
15 #include "virtual-methods.hh"
18 #include "direction.hh"
21 /** An atom of musical information. This is an abstract class for any
22 piece of music that does not contain other Music.
24 Hungarian postfix: req
27 class Request : public Music {
34 VIRTUAL_COPY_CONS(Music);
36 bool equal_b (Request*) const;
38 virtual bool do_equal_b (Request*) const;
39 virtual void do_print() const;
43 #define REQUESTMETHODS(T) \
45 VIRTUAL_COPY_CONS(Request);\
46 virtual void do_print() const
50 /** Put a script above or below this ``note'' or bar. eg upbow, downbow. Why
51 a request? These symbols may conflict with slurs and brackets, so
52 this also a request */
54 class Script_req : public virtual Request {
57 General_script_def *scriptdef_p_;
59 bool do_equal_b (Request*) const;
62 REQUESTMETHODS(Script_req);
64 Script_req (Script_req const&);
69 Requests to start or stop something.
70 This type of request typically results in the creation of a #Spanner#
72 class Span_req : public virtual Request {
74 /// should the spanner start or stop, or is it unwanted?
76 bool do_equal_b (Request*) const;
77 REQUESTMETHODS(Span_req);