5 #include "simplestaff.hh"
13 Simple_staff::get_TYPESET_item(Command *com)
16 svec<Scalar> arg( com->args);
20 s = new Bar(com->args[1]);
21 } else if (type == "METER") {
23 } else if (type == "CLEF" ||type == "CURRENTCLEF") {
24 Clef_item * c = new Clef_item;
26 c->change = (type == "CLEF");
28 WARN << "ignoring TYPESET command for " << type << '\n';
36 itemlist_width(const svec<Item*> &its)
39 for (int j =0; j < its.sz(); j++)
40 iv.unite(its[j]->width());
45 Simple_column::typeset_item(Item *i, int breakst)
49 staff_->pscore_->typeset_item(i, score_column->pcol_,
50 staff_->theline,breakst);
52 if (breakst == BREAK_PRE - BREAK_PRE) {
55 staff_->pscore_->select_items(staff_->theline,
56 score_column->pcol_->prebreak));
57 Interval column_wid = itemlist_width(to_move);
58 assert(!column_wid.empty());
60 for (int j=0; j < to_move.sz(); j++) {
61 to_move[j]->translate(Offset(-column_wid.max, 0));
67 Simple_column::typeset_item_directional(Item *i, int dir, int breakst)
70 PCol * c=score_column->pcol_;
73 else if (breakst == 2)
76 svec<Item*> to_move(staff_->pscore_->select_items(staff_->theline,
78 typeset_item(i, breakst);
80 Interval column_wid = itemlist_width(to_move);
81 if (column_wid.empty())
82 column_wid = Interval(0,0);
83 i->translate(Offset(column_wid[dir] - i->width()[-dir], 0));
87 Simple_staff::set_output(PScore* ps )
90 pscore_->add(theline);
95 Simple_staff::get_rest(Rest_req*rq)
97 int b = rq->rhythmic()->balltype;
98 int d = rq->rhythmic()->dots;
99 return new Rest(b, d);
103 Simple_staff::get_local_key_item()