Bar(String type);
- Molecule*brew_molecule()const;
+ Molecule*brew_molecule_p()const;
};
#endif // BAR_HH
private:
Molecule stem_beams(Stem *here, Stem *next, Stem *prev)const;
void solve_slope();
- Molecule*brew_molecule()const;
+ Molecule*brew_molecule_p()const;
};
/** Beam adjusts the stems its owns to make sure that they reach the
beam and that point in the correct direction */
Clef_item();
void read(Clef);
void read(String);
- Molecule* brew_molecule()const;
+ Molecule* brew_molecule_p()const;
};
#endif // CLEFITEM_HH
void preprocess();
- Molecule* brew_molecule()const;
+ Molecule* brew_molecule_p()const;
};
/**
An item which places accidentals at the start of the line
--- /dev/null
+#include "pstaff.hh"
+
+struct Linestaff : PStaff {
+
+ int nolines;
+
+/****************/
+
+ void brew_molecule_p(Real width);
+ Linestaff(int, PScore*);
+};
void add(int oct, int pitch, int acc, Notehead*);
void do_pre_processing();
- Molecule* brew_molecule()const;
+ Molecule* brew_molecule_p()const;
};
#endif // LOCALKEYITEM_HH
--- /dev/null
+//
+// lyriccolumn.hh -- part of LilyPond
+//
+// copyright 1997 Jan Nieuwenhuizen <jan@digicash.nl>
+
+
+#ifndef LYRICCOLUMN_HH
+#define LYRICCOLUMN_HH
+
+#include "key.hh"
+#include "stcol.hh"
+#include "staff.hh"
+#include "staffwalker.hh"
+
+struct Lyric_staff;
+
+/// (winfo)
+struct Word_info {
+ Lyric_req* lreq_l_;
+ Word_info();
+ Word_info(Lyric_req* lreq_l);
+};
+
+/// (lcol)
+struct Lyric_column : Staff_column {
+
+ Array<Word_info> winfo_array_;
+ Lyric_staff* lstaff_l_;
+
+ void typeset_item(Item *, int=1);
+// void typeset_item_directional(Item *, int dir, int=1);
+
+// Molecule *create_command_mol(Command *com);
+
+// void take_request(Request *rq);
+ virtual void process_requests();
+
+ Lyric_column(Score_column*s,Lyric_staff*rs);
+};
+
+#endif // LYRICSTAFF_HH
+
+
+
+
--- /dev/null
+//
+// lyricstaff.hh -- part of LilyPond
+//
+// copyright 1997 Jan Nieuwenhuizen <jan@digicash.nl>
+
+#ifndef LYRICSTAFF_HH
+#define LYRICSTAFF_HH
+
+#include "staff.hh"
+
+/// (lstaff)
+struct Lyric_staff : Staff {
+ PStaff* line_pstaff_p_;
+
+ Staff_column* create_col(Score_column*);
+
+// virtual Item *get_TYPESET_item(Command*);
+ virtual void set_output(PScore *);
+// virtual Local_key_item* get_local_key_item();
+
+ void process_commands(PCursor<Command*> &where);
+ virtual void walk();
+
+ Lyric_staff();
+};
+
+#endif // LYRICSTAFF_HH
+
+
+
+
--- /dev/null
+/*
+ simplewalker.hh -- part of LilyPond
+
+ (c) 1996,97 Han-Wen Nienhuys, Jan Nieuwenhuizen <jan@digicash.nl>
+*/
+
+#ifndef LYRICWALKER_HH
+#define LYRICWALKER_HH
+
+#include "proto.hh"
+#include "grouping.hh"
+#include "staffwalker.hh"
+#include "lyriccolumn.hh"
+
+struct Lyric_item; // put into proto
+struct Lyric_walker: Staff_walker {
+ Array<Lyric_item*> litem_l_array_;
+
+ /****************/
+
+ virtual void do_TYPESET_command(Command*);
+ virtual void do_INTERPRET_command(Command*);
+ virtual void process_requests();
+ virtual void reset();
+
+ void do_word(Word_info);
+ Lyric_walker(Lyric_staff* lstaff_l);
+ Lyric_column* lcol_l();
+ Lyric_staff* lstaff_l();
+};
+
+
+#endif // LYRICWALKER_HH
+
+
/****************/
Meter(Array<Scalar> args) ;
- Molecule*brew_molecule() const;
+ Molecule*brew_molecule_p() const;
};
#endif // METER_HH
void print()const;
static int compare(Notehead*&a, Notehead*&b) ;
- Molecule* brew_molecule()const;
+ Molecule* brew_molecule_p()const;
};
/**
takes care of:
PointerList<Item*> its;
/****************/
- virtual void brew_molecule(Real width)=0; // maybe overkill
+ virtual void brew_molecule_p(Real width)=0; // maybe overkill
void add(Item*i);
PStaff(PScore*);
virtual ~PStaff();
Rest(int dur,int dots);
void print()const;
- Molecule* brew_molecule()const;
+ Molecule* brew_molecule_p()const;
};
/**
takes care of:
void set_default_dir();
void set_default_pos();
Symbol symbol()const;
- Molecule* brew_molecule()const;
+ Molecule* brew_molecule_p()const;
virtual void do_post_processing();
virtual void do_pre_processing();
Script(Script_req*, Item*,int,Stem*p=0);
Spanner* do_break_at( PCol*, PCol*) const;
void process();
private:
-Molecule*brew_molecule()const;
+Molecule*brew_molecule_p()const;
};
#endif // SLUR_HH
protected:
/// generate the molecule
- virtual Molecule* brew_molecule()const=0;
+ virtual Molecule* brew_molecule_p()const=0;
///executed directly after the item is added to the PScore
virtual void do_add_processing();
/// do calculations before determining horizontal spacing
Interval width() const;
- Molecule* brew_molecule() const;
+ Molecule* brew_molecule_p() const;
};
/**
takes care of:
/****************/
virtual void do_pre_processing();
virtual void do_post_processing();
- Molecule* brew_molecule()const;
+ Molecule* brew_molecule_p()const;
virtual Interval height() const ;
void print() const;
virtual Spanner* do_break_at(PCol*,PCol*)const;
type = t;
}
Molecule*
-Bar::brew_molecule()const
+Bar::brew_molecule_p()const
{
Symbol s = paper()->lookup_p_->bar(type);
Molecule* output = new Molecule(Atom(s));
Molecule*
-Beam::brew_molecule() const return out;
+Beam::brew_molecule_p() const return out;
{
Real inter=paper()->internote();
out = new Molecule;
}
Molecule*
-Clef_item::brew_molecule()const
+Clef_item::brew_molecule_p()const
{
String t = type;
if (change)
Molecule*
-Keyitem::brew_molecule()const
+Keyitem::brew_molecule_p()const
{
Molecule*output = new Molecule;
Real inter = paper()->interline()/2;
--- /dev/null
+#include "linepstaff.hh"
+#include "molecule.hh"
+#include "symbol.hh"
+#include "lookup.hh"
+#include "dimen.hh"
+#include "paper.hh"
+#include "pscore.hh"
+
+Linestaff::Linestaff(int l, PScore *s)
+ : PStaff(s)
+{
+ nolines = l;
+}
+
+void
+Linestaff::brew_molecule_p(Real width)
+{
+ Atom a = pscore_l_->paper_l_->lookup_p_->linestaff(nolines,width);
+ stafsym_p_ = new Molecule(a);
+}
+
+
+
+
+
+
+
accs.sort(Local_acc::compare);
}
Molecule*
-Local_key_item::brew_molecule()const
+Local_key_item::brew_molecule_p()const
{
Molecule* output = new Molecule;
}
Molecule*
-Meter::brew_molecule()const
+Meter::brew_molecule_p()const
{
Symbol s = paper()->lookup_p_->meter(args);
return new Molecule(Atom(s));
}
Molecule*
-Notehead::brew_molecule() const return out;
+Notehead::brew_molecule_p() const return out;
{
Paperdef *p = paper();
}
Molecule*
-Rest::brew_molecule()const
+Rest::brew_molecule_p()const
{
Paperdef *p =paper();
}
Molecule*
-Script::brew_molecule() const
+Script::brew_molecule_p() const
{
Real dy = paper()->internote();
Interval
Staff_elem::width() const
{
- Molecule*m= brew_molecule();
Interval r;
if (!output){
- Molecule*m = brew_molecule();
+ Molecule*m = brew_molecule_p();
r = m->extent().x;
delete m;
} else
Interval r;
if (!output){
- Molecule*m = brew_molecule();
+ Molecule*m = brew_molecule_p();
r = m->extent().y;
delete m;
} else
if (dependencies[i])
dependencies[i]->molecule_processing();
if (!calc_children)
- output= brew_molecule();
+ output= brew_molecule_p();
status = OUTPUT;
}
static String
make_vbox(Interval i)
-{
+{
+ Real r = (i.empty()) ? 0.0 : i.length();
String s("\\vbox to ");
- s += print_dimen(i.length());
+ s += print_dimen(r);
s += "{\\vskip "+print_dimen(i.right)+" ";
return s;
}
s += "\\hbox{";
{
((PStaff*)pstaff_l_)->
- brew_molecule(line_of_score_l_->pscore_l_->paper_l_->linewidth);
+ brew_molecule_p(line_of_score_l_->pscore_l_->paper_l_->linewidth);
s+=pstaff_l_->stafsym_p_->TeXstring();
iter_top(line_of_score_l_->cols,cc);
s +=String( "\\kern ") + print_dimen(delta);
// now output the items.
-
for (iter_top(cc->its,i); i.ok(); i++) {
if (i->pstaff_l_ == pstaff_l_)
s += i->TeXstring();
Line_of_staff::process()
{
if (!pstaff_l_->stafsym_p_)
- pstaff_l_->brew_molecule(line_of_score_l_->pscore_l_->
- paper_l_->linewidth);
+ pstaff_l_->brew_molecule_p(line_of_score_l_->pscore_l_->
+ paper_l_->linewidth);
}
}
Molecule*
-Stem::brew_molecule()const return out;
+Stem::brew_molecule_p()const return out;
{
assert(bot!=top);
void
Text_spanner::do_post_processing()
{
- switch(spec.align) {
+ switch(spec.align_i_) {
case 0:
tpos = support->center();
break;
}
Molecule*
-Text_spanner::brew_molecule() const
+Text_spanner::brew_molecule_p() const
{
- Atom tsym (spec.create(paper()));
+ Atom tsym (spec.create_atom(paper()));
tsym.translate(tpos);
Molecule*output = new Molecule;
Interval
Text_spanner::height()const
{
- return brew_molecule()->extent().y;
+ return brew_molecule_p()->extent().y;
}
Spanner*