#include "molecule.hh"
+#include "stem.hh"
#include "linestaff.hh"
#include "rhythmstaff.hh"
#include "paper.hh"
void
Rhythmic_column::typeset_command(Command *com, int breakst)
{
- Item *i = create_command_item(com);
- i->output->translate(Offset(0,
- -staff_->score_->paper_->standard_height()/2));
+ Item *i =new Item;
+ Molecule*m = create_command_mol(com);
+ i->output=m;
+ m->translate(Offset(0,
+ -staff_->score_->paper_->standard_height()/2));
typeset_item(i, breakst);
}
void
Rhythmic_column::typeset_req(Request *rq)
{
- Item *i =create_req_item(rq);
+ Item *i =new Item;
+ Molecule*m=create_req_mol(rq);
+ i->output=m;
typeset_item(i);
}
+void
+Rhythmic_column::typeset_stem(Stem_req*rq)
+{
+ Stem * s = new Stem(0);
+ s->minnote = s->maxnote = 0;
+ s->flag = rq->stem_number;
+ s->calculate();
+ typeset_item(s);
+ s->brew_molecole();
+}
+
/*
creation
*/
: Staff_column(s)
{
the_note = 0;
+ stem_ = 0;
staff_ = rs;
}
theline = 0;
}
-// should integrate handling of BREAK commands into Staff_column
void
Simple_column::process_commands( )
{
accept:
BREAK: all
- TYPESET: bar, meter
+ TYPESET: bar, meter,
*/
Request *rq= rqc;
if (rq->rhythmic()){
if (the_note){
- WARN << "too many notes.\n";
- return;
+ WARN << "too many notes.\n";
}
the_note = rq;
+
}
- break;
+ if (rq->stem()) {
+ stem_ = rq->stem();
+ }
+
}
}
Simple_column *rp = (Simple_column*)*cc;
if (rp->the_note)
rp->typeset_req( rp->the_note);
+ if (rp->stem_)
+ rp->typeset_stem(rp->stem_->stem());
}
}