From e28f91a23fa16938b7b941de4a82e46c7b45f44b Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 17 Nov 1996 23:51:24 +0000 Subject: [PATCH] lilypond-0.0.10 --- hdr/swalker.hh | 8 +++++++- src/swalker.cc | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/hdr/swalker.hh b/hdr/swalker.hh index c00923ff99..da132dd9d6 100644 --- a/hdr/swalker.hh +++ b/hdr/swalker.hh @@ -17,13 +17,19 @@ struct Staff_walker : public PCursor { int break_status; /****************/ + int priority() const; // Command Real when() const; virtual ~Staff_walker(); Staff_walker(Staff*, PScore*); void process() ; - virtual void process_command(Command *)=0; + void process_command(Command *); + void operator++(int); + /// every time ++ is called + virtual void reset()=0; virtual void process_requests()=0; + virtual void do_TYPESET_command(Command*)=0; + virtual void do_INTERPRET_command(Command*)=0 ; }; /** manage run-time info when walking staffcolumns such as: key, diff --git a/src/swalker.cc b/src/swalker.cc index db48fd1f82..54872ec83b 100644 --- a/src/swalker.cc +++ b/src/swalker.cc @@ -1,6 +1,7 @@ #include "request.hh" #include "swalker.hh" #include "stcol.hh" +#include "sccol.hh" Staff_walker::~Staff_walker() {} @@ -30,3 +31,34 @@ Staff_walker::process() process_requests(); } + +void +Staff_walker::process_command(Command*com) +{ + switch (com->code){ + case BREAK_PRE: + case BREAK_MIDDLE: + case BREAK_POST: + case BREAK_END: + (*this)->score_column->set_breakable(); + break_status = com->code- BREAK_PRE; + break; + case INTERPRET: + do_INTERPRET_command(com); + break; + + case TYPESET: + do_TYPESET_command(com); + break; + + default : + break; + } +} + +void +Staff_walker::operator++(int i) +{ + PCursor::operator++(i); + reset(); +} -- 2.39.5