PScore * pscore_; // needed to generate staffs
/****************/
-
+ void process() ;
Line_of_score(svec<const PCol *> sv, PScore *);
String TeXstring() const;
struct Line_of_staff {
Line_of_score * line_of_score_;
- const PStaff *pstaff_;
+ PStaff *pstaff_;
/****************/
String TeXstring() const;
Line_of_staff(Line_of_score*, PStaff *);
Interval height() const;
-
+ void process();
};
#endif
#include "spanner.hh"
#include "symbol.hh"
#include "paper.hh"
+#include "molecule.hh"
#include "pcol.hh"
#include "pscore.hh"
s+=make_vbox(height());
// the staff itself: eg lines, accolades
s += "\\hbox{";
- {
- Symbol sym = pstaff_->get_stafsym(line_of_score_->pscore_-> // ugh
- paper_->linewidth);
- s+=sym.tex;
+ {
+ ((PStaff*)pstaff_)->
+ brew_molecule(line_of_score_->pscore_->paper_->linewidth);
+
+ s+=pstaff_->stafsym->TeXstring();
PCursor<const PCol *> cc(line_of_score_->cols);
Real lastpos=cc->hpos;
{
Interval y;
{
- Symbol s = pstaff_->stafsym->eval(line_of_score_->pscore_->
- paper_->linewidth);
- y = s.dim.y;
+ y = pstaff_->stafsym->extent().y;
}
PCursor<const PCol *> cc(line_of_score_->cols);
return y;
}
-
+void
+Line_of_staff::process()
+{
+ if (!pstaff_->stafsym)
+ pstaff_->brew_molecule(line_of_score_->pscore_->
+ paper_->linewidth);
+}