X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Frequest.hh;h=62d5e73e8ca39b4f5a2e132b6fe8e64e0b9a897f;hb=aa2bfa145710e9008db143e4ddc567fa418d35e5;hp=c3e0deb846e8a5b6c1bf3030bc6dc078bd369535;hpb=3f374e66968308461daa390a7aeed0b013bfe33d;p=lilypond.git diff --git a/lily/include/request.hh b/lily/include/request.hh index c3e0deb846..62d5e73e8c 100644 --- a/lily/include/request.hh +++ b/lily/include/request.hh @@ -1,40 +1,40 @@ /* request.hh -- declare Request baseclasses. - source file of the LilyPond music typesetter + source file of the GNU LilyPond music typesetter (c) 1997 Han-Wen Nienhuys */ #ifndef REQUEST_HH #define REQUEST_HH -// LilyPond's second egg of columbus! #include "glob.hh" #include "string.hh" #include "moment.hh" -#include "class-name.hh" +#include "virtual-methods.hh" #include "input.hh" +#include "music.hh" /** a voice element wants something printed. Hungarian postfix: req @see lilygut manpage */ -class Request : public Input { +class Request : public Music { + public: - Voice_element*elt_l_; + Voice * voice_l(); /* *************** */ - Voice * voice_l(); - Request(); - Request(Request const&); + virtual ~Request(){} - NAME_MEMBERS(Request); - virtual Request* clone() const { return new Request(*this); } - void print()const ; + NAME_MEMBERS(); + VIRTUAL_COPY_CONS(Request,Music); + void print()const ; + virtual MInterval time_int() const; virtual void transpose(Melodic_req const &){} virtual Moment duration() const { return 0; } @@ -42,19 +42,9 @@ public: maybe checkout RTTI */ virtual Barcheck_req *barcheck() { return 0; } - virtual Note_req *note() { return 0;} virtual Script_req *script() { return 0;} - virtual Stem_req *stem() { return 0;} - virtual Text_req*text() { return 0; } - virtual Rest_req *rest() { return 0; } virtual Span_req *span() { return 0; } - virtual Beam_req *beam() { return 0 ; } - virtual Plet_req* plet() { return 0; } - virtual Slur_req *slur() { return 0 ; } - virtual Rhythmic_req*rhythmic() { return 0; } - virtual Lyric_req* lreq_l() { return 0; } - virtual Melodic_req *melodic() { return 0; } - virtual Spacing_req * spacing() { return 0; } + virtual Spacing_req * spacing() { return 0; } virtual Blank_req * blank() { return 0; } virtual Musical_req *musical() { return 0; } virtual Command_req * command() { return 0; } @@ -64,8 +54,27 @@ protected: #define REQUESTMETHODS(T,accessor) \ virtual T * accessor() { return this;}\ -NAME_MEMBERS(T);\ -virtual Request *clone() const { return new T(*this); } \ +NAME_MEMBERS();\ +VIRTUAL_COPY_CONS(T, Request);\ virtual void do_print() const + + +/** Put a script above or below this ``note'' or bar. eg upbow, downbow. Why + a request? These symbols may conflict with slurs and brackets, so + this also a request */ +class Script_req : public virtual Request { +public: + int dir_i_; + General_script_def *scriptdef_p_; + + /* *************** */ + static int compare(const Script_req &, const Script_req &); + Script_req(); + REQUESTMETHODS(Script_req,script); + ~Script_req(); + Script_req(Script_req const&); +}; + + #endif