|
|
#ifndef _SYSTEMITERATOR_H_ #define _SYSTEMITERATOR_H_ // // usage: // // gi = new SystemIterator(_editor); // respects left and right positions // // for (SystemIterator gi = SystemIterator(_editor); !gi.done(); gi++) { // draw(gi); // } // // // // // // #include "position.h" #include "iterator.h" #include "table.h" #include "scoreBar.h" class PrPartEditor; class PrScoreEditor; class Track; class Part; class Event; class Note; class Tuplet; class SystemIterator : public Iterator { private: PrScoreEditor * _editor; ScoreType _score_type; Table _system; int _ptr; int _max; int _res; bool _no_overlap; double _scale; int _width; Part * _active_part; struct InitState * state; bool adjust; Position notepos; void add(Event * ev, long dur=0, int dis=0, Position pos=0); void splitAndAdd(int, Tuplet *, Tuplet *); void nextbar(); bool reallyDone(Tuplet*); Position truncEnd(Note * note); public: SystemIterator(const SystemIterator& i); // SystemIterator(ScoreType sctype, Track * track, int editorwidth, int ressolution = 96, bool nooverlap = true, Position left = 0, Position right = 0); SystemIterator(ScoreType sctype, Track * track, PrScoreEditor * editor, Part * activepart, long lpos=-1, long rpos=-1); SystemIterator(Part * part, int editorwidth, int ressolution = 96, bool nooverlap = true, Position left = 0, Position right = 0); SystemIterator(PrPartEditor * editor); ~SystemIterator(); /** creates the System from the events */ void init(); virtual bool done() const; int size() const { return _system.size(); } Element * operator *(); Iterator& operator++(); Iterator operator++(int); }; #endif
Generated by: wuerthne on al on Sun Jan 6 22:32:42 2002, using kdoc 2.0a53. |