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,
#include "request.hh"
#include "swalker.hh"
#include "stcol.hh"
+#include "sccol.hh"
Staff_walker::~Staff_walker() {}
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<Staff_column*>::operator++(i);
+ reset();
+}