Script::Script(Script_req* rq)
{
specs_l_ = rq->scriptdef_p_;
- inside_staff_b_ = specs_l_->inside_staff_b_;
+ inside_staff_b_ = specs_l_->inside_b();
stem_l_ = 0;
pos_i_ = 0;
- symdir_i_=1;
dir_i_ =rq->dir_i_;
}
-
-void
-Script::set_symdir()
-{
- if (specs_l_->invertsym_b_)
- symdir_i_ = (dir_i_ < 0) ? -1:1;
-}
-
void
Script::set_default_dir()
{
- int s_i=specs_l_->rel_stem_dir_i_;
+ int s_i=specs_l_->rel_stem_dir_i();
if (s_i && stem_l_)
dir_i_ = stem_l_->dir_i_ * s_i;
else {
- dir_i_ =specs_l_->staff_dir_i_;
+ dir_i_ =specs_l_->staff_dir_i();
}
}
void
Script::set_default_index()
{
- pos_i_ = get_position_i(symbol().dim.y);
+ pos_i_ = get_position_i(specs_l_->get_atom(paper(), dir_i_).extent().y);
}
Interval
Script::do_width() const
{
- return symbol().dim.x;
-}
-
-Symbol
-Script::symbol()const
-{
- String preidx_str = (symdir_i_ < 0) ?"-" :"";
- return paper()->lookup_l()->script(preidx_str + specs_l_->symidx);
+ return specs_l_->get_atom(paper(), dir_i_).extent().x;
}
void
{
if (!dir_i_)
set_default_dir();
- set_symdir();
+
}
void
{
Real dy = paper()->internote_f();
- Molecule*out = new Molecule(Atom(symbol()));
+ Molecule*out = new Molecule(specs_l_->get_atom(paper(), dir_i_));
out->translate(Offset(0,dy * pos_i_));
return out;
}
+
IMPLEMENT_STATIC_NAME(Script);
int
Script::compare(Script *const&l1, Script *const&l2)
{
- return l1->specs_l_->priority_i_ - l2->specs_l_->priority_i_;
+ return l1->specs_l_->priority_i() - l2->specs_l_->priority_i();
}