<p>
-Copyright (c) 1997, 1998, 1999, 2000 Han-Wen Nienhuys and Jan Nieuwenhuizen.
+Copyright (c) 1997--2001 Han-Wen Nienhuys and Jan Nieuwenhuizen.
<p>
\score{ <
\context StaffGroup = wood <
\context Staff = flauto <
- \property Staff.instrument = "\\rotatebox[origin=c]{90}{Flauto}"
+ %"\\rotatebox[origin=c]{90}{Flauto}"
+
+ \property Staff.instrument = "Flauto"
\property Staff.instr = "Fl."
\m
>
>
\context Staff = vlc <
%% \property Staff.instrument = "Violoncello"
- \property StaffCombineStaff.instrument = #'(lines "Violoncello" "e" "Contrabasso")
+ \property Staff.instrument = #'(lines "Violoncello" "e" "Contrabasso")
\property Staff.instr = "Vlc"
\m
>
&& daddy_trans_l_->id_str_.left_str (3) == "one")))
{
text_p_ = new Item (get_property ("TextScript"));
- Side_position::set_axis (text_p_, Y_AXIS);
+ Side_position_interface::set_axis (text_p_, Y_AXIS);
announce_grob (text_p_, 0);
Direction dir = UP;
text = get_property ("aDueText");
}
- Side_position::set_direction (text_p_, dir);
+ Side_position_interface::set_direction (text_p_, dir);
text_p_->set_grob_property ("text", text);
}
}
if (Note_head::has_interface (i.elem_l_))
{
Grob*t = text_p_;
- Side_position::add_support (t, i.elem_l_);
- if (Side_position::get_axis (t) == X_AXIS
+ Side_position_interface::add_support (t, i.elem_l_);
+ if (Side_position_interface::get_axis (t) == X_AXIS
&& !t->parent_l (Y_AXIS))
t->set_parent (i.elem_l_, Y_AXIS);
}
if (Stem::has_interface (i.elem_l_))
{
- Side_position::add_support (text_p_, i.elem_l_);
+ Side_position_interface::add_support (text_p_, i.elem_l_);
}
}
{
if (text_p_)
{
- Side_position::add_staff_support (text_p_);
+ Side_position_interface::add_staff_support (text_p_);
typeset_grob (text_p_);
text_p_ = 0;
}
all_translates .push (w);
j++;
}
- }
- if (isdir_b (align))
- {
- center_offset = total.linear_combination (gh_scm2double (align));
- }
+ if (isdir_b (align))
+ {
+ center_offset = total.linear_combination (gh_scm2double (align));
+ }
- for (int j = 0 ; j < all_grobs.size (); j++)
- all_grobs[j]->translate_axis (all_translates[j] - center_offset, a);
+ for (int j = 0 ; j < all_grobs.size (); j++)
+ all_grobs[j]->translate_axis (all_translates[j] - center_offset, a);
+ }
}
-
Axis
Align_interface::axis (Grob*me)
{
{
align_item_p_ = new Item (get_property ("GraceAlignment"));
Grace_align_item::set_interface (align_item_p_);
- Side_position::set_axis (align_item_p_, X_AXIS);
- Side_position::set_direction (align_item_p_, LEFT);
+ Side_position_interface::set_axis (align_item_p_, X_AXIS);
+ Side_position_interface::set_direction (align_item_p_, LEFT);
// needed for setting font size.
announce_grob (align_item_p_, 0);
}
for (int i = 0; i < supports_.size (); i++)
{
- Side_position::add_support (arpeggio_, supports_[i]);
+ Side_position_interface::add_support (arpeggio_, supports_[i]);
}
announce_grob (arpeggio_, arpeggio_req_);
}
SCM b = get_property ("BarNumber");
text_p_ = new Item (b);
- Side_position::set_axis(text_p_,Y_AXIS);
+ Side_position_interface::set_axis(text_p_,Y_AXIS);
announce_grob (text_p_, 0);
}
*/
- return Side_position::aligned_on_self (element_smob, axis);
+ return Side_position_interface::aligned_on_self (element_smob, axis);
}
void
{
Item * g = new Item (get_property ("OctavateEight"));
- Side_position::add_support (g,clef_p_);
+ Side_position_interface::add_support (g,clef_p_);
g->set_parent (clef_p_, Y_AXIS);
g->set_parent (clef_p_, X_AXIS);
dotcol_p_ = new Item(get_property ("DotColumn"));
Dot_column::set_interface (dotcol_p_);
- Side_position::set_axis (dotcol_p_, X_AXIS);
- Side_position::set_direction (dotcol_p_, RIGHT);
+ Side_position_interface::set_axis (dotcol_p_, X_AXIS);
+ Side_position_interface::set_direction (dotcol_p_, RIGHT);
announce_grob (dotcol_p_, 0);
}
Grob * d = unsmob_grob (rh->get_grob_property ("dot"));
if (d)
{
- Side_position::add_support (me,rh);
+ Side_position_interface::add_support (me,rh);
Pointer_group_interface ::add_element (me, "dots",d);
d->add_offset_callback (Dot_column::force_shift_callback_proc , Y_AXIS);
{
line_spanner_ = new Spanner (get_property ("DynamicLineSpanner"));
- Side_position::set_axis (line_spanner_, Y_AXIS);
+ Side_position_interface::set_axis (line_spanner_, Y_AXIS);
Axis_group_interface::set_interface (line_spanner_);
Axis_group_interface::set_axes (line_spanner_, Y_AXIS, Y_AXIS);
script_p_->set_grob_property ("text",
script_req_l_->get_mus_property ("text"));
- Side_position::set_direction (script_p_, LEFT);
- Side_position::set_axis (script_p_, X_AXIS);
+ Side_position_interface::set_direction (script_p_, LEFT);
+ Side_position_interface::set_axis (script_p_, X_AXIS);
if (Direction d = script_req_l_->get_direction ())
Directional_element_interface::set (line_spanner_, d);
/*
To make sure that this works
*/
- Side_position::add_staff_support (finished_line_spanner_);
+ Side_position_interface::add_staff_support (finished_line_spanner_);
/*
We used to have
{
if (line_spanner_)
{
- Side_position::add_support (line_spanner_,i.elem_l_);
+ Side_position_interface::add_support (line_spanner_,i.elem_l_);
add_bound_item (line_spanner_,dynamic_cast<Item*>(i.elem_l_));
}
}
if (align_l_)
{
for (int i=0; i < support_.size (); i++)
- Side_position::add_support (align_l_,support_[i]);
+ Side_position_interface::add_support (align_l_,support_[i]);
support_.clear ();
}
}
void
Grace_position_engraver::stop_translation_timestep ()
{
- if (align_l_ && !Side_position::supported_b (align_l_))
+ if (align_l_ && !Side_position_interface::supported_b (align_l_))
{
/*
We don't have support. Either some moron tried attaching us to a rest,
#include "item.hh"
/*
- TODO: move out unrelated callbacks.
+ TODO: move out unrelated callbacks.
TODO: reduce number of methods.
*/
-struct Side_position
+struct Side_position_interface
{
public:
- DECLARE_SCHEME_CALLBACK(side_position, (SCM element, SCM axis));
- DECLARE_SCHEME_CALLBACK(aligned_on_self, (SCM element, SCM axis));
+ DECLARE_SCHEME_CALLBACK(aligned_on_support_extents, (SCM element, SCM axis));
+ DECLARE_SCHEME_CALLBACK(aligned_on_support_refpoints, (SCM element, SCM axis));
+ DECLARE_SCHEME_CALLBACK(aligned_on_self, (SCM element, SCM axis));
DECLARE_SCHEME_CALLBACK(aligned_side, (SCM element, SCM axis));
DECLARE_SCHEME_CALLBACK(quantised_position, (SCM element, SCM axis));
DECLARE_SCHEME_CALLBACK(centered_on_parent, (SCM element, SCM axis));
+
+ static SCM general_side_position (Grob*, Axis, bool);
static void set_axis (Grob*,Axis);
static void set_minimum_space (Grob*,Real);
static void set_padding (Grob*,Real);
#include "system-start-delimiter.hh"
#include "side-position-interface.hh"
#include "align-interface.hh"
+#include "axis-group-interface.hh"
+#include "translator-group.hh"
class Instrument_name_engraver : public Engraver
{
Item *text_;
- Grob * delim_ ;
-
+ Grob *delim_ ;
+
void create_text (SCM s);
public:
VIRTUAL_COPY_CONS(Translator);
Instrument_name_engraver ();
-
+ virtual void initialize ();
virtual void acknowledge_grob (Grob_info);
virtual void stop_translation_timestep ();
};
}
+void
+Instrument_name_engraver::initialize ()
+{
+ daddy_trans_l_->set_property ("instrumentSupport", SCM_EOL);
+}
+
void
Instrument_name_engraver::stop_translation_timestep ()
{
if (text_)
{
+ text_->set_grob_property ("side-support-elements",
+ get_property ("instrumentSupport"));
typeset_grob (text_);
text_ = 0;
}
}
- if (Align_interface::has_interface (i.elem_l_)
- && Align_interface::axis (i.elem_l_) == Y_AXIS
- //System_start_delimiter::has_interface (i.elem_l_)
- && i.origin_trans_l_->daddy_trans_l_ == daddy_trans_l_)
+ if (dynamic_cast<Spanner*> (i.elem_l_)
+ && i.elem_l_->has_interface (ly_symbol2scm ("dynamic-interface")))
+ return;
+
+ if (dynamic_cast<Spanner*> (i.elem_l_)
+ &&((Axis_group_interface::has_interface (i.elem_l_)
+ && Axis_group_interface::axis_b (i.elem_l_, Y_AXIS))
+ || (Align_interface::has_interface (i.elem_l_)
+ && Align_interface::axis (i.elem_l_) == Y_AXIS)))
{
- delim_ = i.elem_l_;
+ SCM nl = gh_cons (i.elem_l_->self_scm (),
+ get_property ("instrumentSupport"));
+
+ daddy_trans_l_->set_property ("instrumentSupport", nl);
}
}
text_p_ = new Item (s);
- Side_position::set_axis (text_p_, Y_AXIS);
+ Side_position_interface::set_axis (text_p_, Y_AXIS);
announce_grob (text_p_, rq);
}
generate = generate.left_str (generate.length_i () - 1);
}
+ /*
+ Make fixed length time stamps
+ */
+ generate = generate + to_str (' ' * (120 - generate.length_i ())>? 0) ;
+
SCM args_scm =
gh_list (ly_str02scm (creator.ch_l ()),
ly_str02scm (generate.ch_l ()), SCM_UNDEFINED);
str += ctime (&t);
str = str.left_str (str.length_i() - 1);
}
+
+ /*
+ Pad out time stamps to 120 chars. */
+ str = str + to_str (' ' , (120 - str.length_i ()) >? 0);
+
Audio_text generate_a (Audio_text::TEXT, str);
Midi_text generate (&generate_a);
midi_track.add (Moment (0), &generate);
{
if (Rhythmic_head::has_interface (info.elem_l_))
{
- Side_position::add_support (p->item_p_, info.elem_l_);
+ Side_position_interface::add_support (p->item_p_, info.elem_l_);
- if (Side_position::get_axis(p->item_p_) == X_AXIS
+ if (Side_position_interface::get_axis(p->item_p_) == X_AXIS
&& !p->item_p_->parent_l (Y_AXIS))
p->item_p_->set_parent (info.elem_l_, Y_AXIS);
}
if (Stem::has_interface (info.elem_l_))
{
- Side_position::add_support (p->item_p_,info.elem_l_);
+ Side_position_interface::add_support (p->item_p_,info.elem_l_);
}
}
}
{
if (p->item_p_)
{
- Side_position::add_staff_support (p->item_p_);
+ Side_position_interface::add_staff_support (p->item_p_);
/*
Hmm.
{
if (sustain)
{
- Side_position::add_support (p->item_p_,sustain);
+ Side_position_interface::add_support (p->item_p_,sustain);
}
}
typeset_grob (p->item_p_);
Script_column_engraver::acknowledge_grob(Grob_info inf)
{
Item *thing = dynamic_cast<Item*> (inf.elem_l_);
- if (thing && Side_position::has_interface (inf.elem_l_)) // ugh FIXME
+ if (thing && Side_position_interface::has_interface (inf.elem_l_)) // ugh FIXME
{
if (!Item::breakable_b (thing)
- && Side_position::get_axis (inf.elem_l_) == Y_AXIS)
+ && Side_position_interface::get_axis (inf.elem_l_) == Y_AXIS)
{
script_l_arr_.push (thing);
}
for (int i=0; i < staff_sided.size (); i++)
{
- arrs[Side_position::get_direction (staff_sided[i])]
+ arrs[Side_position_interface::get_direction (staff_sided[i])]
.push (staff_sided[i]);
}
{
if (last)
- Side_position::add_support( arr[i],last);
+ Side_position_interface::add_support( arr[i],last);
arr[i]->remove_grob_property ("script-priority");
last = arr[i];
*/
SCM axisprop = get_property ("scriptHorizontal");
bool xaxis = to_boolean (axisprop);
- Side_position::set_axis (p, xaxis ? X_AXIS : Y_AXIS);
+ Side_position_interface::set_axis (p, xaxis ? X_AXIS : Y_AXIS);
if (!follow_staff && ! xaxis)
p->set_grob_property ("staff-support", SCM_BOOL_T);
if (!xaxis && follow_staff)
- p->add_offset_callback (Side_position::quantised_position_proc, Y_AXIS);
+ p->add_offset_callback (Side_position_interface::quantised_position_proc, Y_AXIS);
p->set_grob_property ("script-priority", priority);
Grob*e = script_p_arr_[i];
e->set_grob_property ("direction-source", inf.elem_l_->self_scm ());
- Side_position::add_support (e, inf.elem_l_);
+ Side_position_interface::add_support (e, inf.elem_l_);
}
}
else if (Rhythmic_head::has_interface (inf.elem_l_))
{
e->set_parent (inf.elem_l_, X_AXIS);
}
- if (Side_position::get_axis (e) == X_AXIS
+ if (Side_position_interface::get_axis (e) == X_AXIS
&& !e->parent_l (Y_AXIS))
e->set_parent (inf.elem_l_, Y_AXIS);
- Side_position::add_support (e,inf.elem_l_);
+ Side_position_interface::add_support (e,inf.elem_l_);
}
}
}
Grob * sc = script_p_arr_[i];
if (to_boolean (sc->get_grob_property ("staff-support")))
{
- Side_position::add_staff_support (sc);
+ Side_position_interface::add_staff_support (sc);
}
typeset_grob (sc);
}
{
Grob * me = unsmob_grob (smob);
- Direction d = Side_position::get_direction (me);
- Side_position::set_direction (me,d);
+ Direction d = Side_position_interface::get_direction (me);
+ Side_position_interface::set_direction (me,d);
return SCM_UNSPECIFIED;
}
if (isdir_b (d))
dir = to_dir (d);
#endif
- Direction dir = Side_position::get_direction(me);
+ Direction dir = Side_position_interface::get_direction(me);
return get_molecule (me, dir).smobbed_copy();
}
#include "group-interface.hh"
void
-Side_position::add_support (Grob*me, Grob*e)
+Side_position_interface::add_support (Grob*me, Grob*e)
{
Pointer_group_interface::add_element (me, "side-support-elements",e);
}
Direction
-Side_position::get_direction (Grob*me)
+Side_position_interface::get_direction (Grob*me)
{
SCM d = me->get_grob_property ("direction");
if (isdir_b (d) && to_dir (d))
Grob * e = unsmob_grob(other_elt);
if (e)
{
- return (Direction)(relative_dir * Side_position::get_direction (e));
+ return (Direction)(relative_dir * Side_position_interface::get_direction (e));
}
- return DOWN;
+ return CENTER;
}
-/*
- Callback that does the aligning. Puts the element next to the support
- */
-MAKE_SCHEME_CALLBACK(Side_position,side_position,2);
+MAKE_SCHEME_CALLBACK(Side_position_interface,aligned_on_support_extents, 2);
SCM
-Side_position::side_position (SCM element_smob, SCM axis)
+Side_position_interface::aligned_on_support_extents (SCM element_smob, SCM axis)
{
Grob *me = unsmob_grob (element_smob);
Axis a = (Axis) gh_scm2int (axis);
+ return general_side_position (me, a, true);
+}
+
+
+/*
+ Puts the element next to the support, optionally taking in
+ account the extent of the support.
+*/
+SCM
+Side_position_interface::general_side_position (Grob * me, Axis a, bool use_extents)
+{
Grob *common = me->parent_l (a);
SCM support = me->get_grob_property ("side-support-elements");
for (SCM s = support; s != SCM_EOL; s = gh_cdr (s))
Interval dim;
for (SCM s = support; s != SCM_EOL; s = gh_cdr (s))
{
-
Grob * e = unsmob_grob ( gh_car (s));
if (e)
- {
+ if (use_extents)
dim.unite (e->extent (common, a));
- }
+ else
+ {
+ Real x = e->relative_coordinate (common, a);
+ dim.unite (Interval (x,x));
+ }
}
if (dim.empty_b ())
dim = Interval(0,0);
}
- Direction dir = Side_position::get_direction (me);
+ Direction dir = Side_position_interface::get_direction (me);
Real off = me->parent_l (a)->relative_coordinate (common, a);
SCM minimum = me->remove_grob_property ("minimum-space");
- Real total_off = dim[dir] + off;
+ Real total_off = dim.linear_combination (dir) + off;
SCM padding = me->remove_grob_property ("padding");
if (gh_number_p (padding))
{
total_off += gh_scm2double (padding) * dir;
}
- if (gh_number_p (minimum) && total_off * dir < gh_scm2double (minimum))
+
+ if (gh_number_p (minimum)
+ && dir
+ && total_off * dir < gh_scm2double (minimum))
{
total_off = gh_scm2double (minimum) * dir;
}
+
if (fabs (total_off) > 100 CM)
programming_error ("Huh ? Improbable staff side dim.");
return gh_double2scm (total_off);
}
+/*
+ Cut & paste (ugh.)
+ */
+MAKE_SCHEME_CALLBACK(Side_position_interface,aligned_on_support_refpoints,2);
+SCM
+Side_position_interface::aligned_on_support_refpoints (SCM smob, SCM axis)
+{
+ Grob *me = unsmob_grob (smob);
+ Axis a = (Axis) gh_scm2int (axis);
+
+ return general_side_position (me, a, false);
+}
+
+
/**
callback that centers the element on itself
*/
-MAKE_SCHEME_CALLBACK(Side_position,aligned_on_self,2);
+MAKE_SCHEME_CALLBACK(Side_position_interface,aligned_on_self,2);
SCM
-Side_position::aligned_on_self (SCM element_smob, SCM axis)
+Side_position_interface::aligned_on_self (SCM element_smob, SCM axis)
{
Grob *me = unsmob_grob (element_smob);
Axis a = (Axis) gh_scm2int (axis);
Only rounds when we're inside the staff, as determined by
Staff_symbol_referencer::staff_radius() */
-MAKE_SCHEME_CALLBACK(Side_position,quantised_position,2);
+MAKE_SCHEME_CALLBACK(Side_position_interface,quantised_position,2);
SCM
-Side_position::quantised_position (SCM element_smob, SCM )
+Side_position_interface::quantised_position (SCM element_smob, SCM )
{
Grob *me = unsmob_grob (element_smob);
- Direction d = Side_position::get_direction (me);
+ Direction d = Side_position_interface::get_direction (me);
if (Staff_symbol_referencer::has_interface (me))
{
/*
Position next to support, taking into account my own dimensions and padding.
*/
-MAKE_SCHEME_CALLBACK(Side_position,aligned_side,2);
+MAKE_SCHEME_CALLBACK(Side_position_interface,aligned_side,2);
SCM
-Side_position::aligned_side (SCM element_smob, SCM axis)
+Side_position_interface::aligned_side (SCM element_smob, SCM axis)
{
Grob *me = unsmob_grob (element_smob);
Axis a = (Axis) gh_scm2int (axis);
- Direction d = Side_position::get_direction (me);
- Real o = gh_scm2double (side_position (element_smob,axis));
+ Direction d = Side_position_interface::get_direction (me);
+ Real o = gh_scm2double (aligned_on_support_extents (element_smob,axis));
Interval iv = me->extent (me, a);
/*
Position centered on parent.
*/
-MAKE_SCHEME_CALLBACK(Side_position,centered_on_parent,2);
+MAKE_SCHEME_CALLBACK(Side_position_interface,centered_on_parent,2);
SCM
-Side_position::centered_on_parent (SCM element_smob, SCM axis)
+Side_position_interface::centered_on_parent (SCM element_smob, SCM axis)
{
Grob *me = unsmob_grob (element_smob);
Axis a = (Axis) gh_scm2int (axis);
void
-Side_position::add_staff_support (Grob*me)
+Side_position_interface::add_staff_support (Grob*me)
{
Grob* st = Staff_symbol_referencer::staff_symbol_l (me);
if (st)
}
void
-Side_position::set_axis (Grob*me, Axis a)
+Side_position_interface::set_axis (Grob*me, Axis a)
{
- me->add_offset_callback (Side_position::aligned_side_proc, a);
+ me->add_offset_callback (Side_position_interface::aligned_side_proc, a);
}
// ugh. doesn't cactch all variants.
Axis
-Side_position::get_axis (Grob*me)
+Side_position_interface::get_axis (Grob*me)
{
- if (me->has_offset_callback_b (Side_position::aligned_side_proc, X_AXIS)
- || me->has_offset_callback_b (Side_position::aligned_side_proc , X_AXIS))
+ if (me->has_offset_callback_b (Side_position_interface::aligned_side_proc, X_AXIS)
+ || me->has_offset_callback_b (Side_position_interface::aligned_side_proc , X_AXIS))
return X_AXIS;
}
void
-Side_position::set_direction (Grob*me, Direction d)
+Side_position_interface::set_direction (Grob*me, Direction d)
{
me->set_grob_property ("direction", gh_int2scm (d));
}
void
-Side_position::set_minimum_space (Grob*me, Real m)
+Side_position_interface::set_minimum_space (Grob*me, Real m)
{
me->set_grob_property ("minimum-space", gh_double2scm (m));
}
void
-Side_position::set_padding (Grob*me, Real p)
+Side_position_interface::set_padding (Grob*me, Real p)
{
me->set_grob_property ("padding", gh_double2scm (p));
}
bool
-Side_position::has_interface (Grob*me)
+Side_position_interface::has_interface (Grob*me)
{
return me->has_interface (ly_symbol2scm ("side-position-interface"));
}
bool
-Side_position::supported_b (Grob*me)
+Side_position_interface::supported_b (Grob*me)
{
SCM s = me->get_grob_property ("side-support-elements");
return gh_pair_p(s);
// centre on notehead ... if we have one.
if(notehead_l_) {
lyric->set_parent(notehead_l_, X_AXIS);
- lyric->add_offset_callback (Side_position::centered_on_parent_proc, X_AXIS);
+ lyric->add_offset_callback (Side_position_interface::centered_on_parent_proc, X_AXIS);
// reference is on the right of the notehead; move it left half way, and add translation
lyric->translate_axis (group_translation_f_-(notehead_l_->extent(notehead_l_, X_AXIS)).center(), X_AXIS);
}
(me->self_scm(), gh_int2scm (Y_AXIS)));
Real l = ext.length () / staff_space;
- if (gh_number_p (c) && l <= gh_scm2double (c))
+ if (ext.empty_b ()
+ || (gh_number_p (c) && l <= gh_scm2double (c)))
{
me->suicide();
return SCM_EOL;
for (int i=0; i < texts_.size (); i++)
{
Grob*t = texts_[i];
- Side_position::add_support (t,inf.elem_l_);
+ Side_position_interface::add_support (t,inf.elem_l_);
/*
ugh.
*/
- if (Side_position::get_axis( t) == X_AXIS
+ if (Side_position_interface::get_axis( t) == X_AXIS
&& !t->parent_l (Y_AXIS))
t->set_parent (inf.elem_l_, Y_AXIS);
- else if (Side_position::get_axis(t) == Y_AXIS
+ else if (Side_position_interface::get_axis(t) == Y_AXIS
&& !t->parent_l (X_AXIS))
t->set_parent (inf.elem_l_, X_AXIS);
}
{
for (int i=0; i < texts_.size (); i++)
{
- Side_position::add_support(texts_[i],inf.elem_l_);
+ Side_position_interface::add_support(texts_[i],inf.elem_l_);
}
}
}
SCM axisprop = get_property ("scriptHorizontal");
Axis ax = to_boolean (axisprop) ? X_AXIS : Y_AXIS;
- Side_position::set_axis (text, ax);
+ Side_position_interface::set_axis (text, ax);
#if 0
if (r->style_str_ == "finger" && ax == Y_AXIS)
/*
nicely center the scripts.
*/
- text->add_offset_callback (Side_position::aligned_on_self_proc, X_AXIS);
- text->add_offset_callback (Side_position::centered_on_parent_proc, X_AXIS);
+ text->add_offset_callback (Side_position_interface::aligned_on_self_proc, X_AXIS);
+ text->add_offset_callback (Side_position_interface::centered_on_parent_proc, X_AXIS);
}
#endif
gh_int2scm (200 + i));
if (r->get_direction ())
- Side_position::set_direction (text, r->get_direction ());
+ Side_position_interface::set_direction (text, r->get_direction ());
text->set_grob_property ("text", r->get_mus_property ("text"));
for (int i=0; i < texts_.size (); i++)
{
Item *ti = texts_[i];
- Side_position::add_staff_support (ti);
+ Side_position_interface::add_staff_support (ti);
typeset_grob (ti);
}
texts_.clear ();
span_->set_grob_property ("if-text-padding", gh_double2scm (0));
span_->set_grob_property ("width-correct", gh_double2scm (0));
- Side_position::set_axis (span_, Y_AXIS);
+ Side_position_interface::set_axis (span_, Y_AXIS);
Grob *e = unsmob_grob (get_property ("currentMusicalColumn"));
span_->set_bound (LEFT, e);
{
if (span_ && Note_column::has_interface (info.elem_l_))
{
- Side_position::add_support (span_, info.elem_l_);
+ Side_position_interface::add_support (span_, info.elem_l_);
add_bound_item (span_, dynamic_cast<Item*> (info.elem_l_));
}
}
{
if (finished_)
{
- Side_position::add_staff_support (finished_);
+ Side_position_interface::add_staff_support (finished_);
typeset_grob (finished_);
finished_ = 0;
}
{
if (end_volta_span_p_)
{
- Side_position::add_staff_support (end_volta_span_p_);
+ Side_position_interface::add_staff_support (end_volta_span_p_);
typeset_grob (end_volta_span_p_ );
end_volta_span_p_ =0;
Volta_spanner::add_bar (Grob *me, Item* b)
{
Pointer_group_interface::add_element(me, "bars",b);
- Side_position::add_support (me,b);
+ Side_position_interface::add_support (me,b);
add_bound_item (dynamic_cast<Spanner*>(me), b);
}
void
Volta_spanner::add_column (Grob*me, Grob* c)
{
- Side_position::add_support (me,c);
+ Side_position_interface::add_support (me,c);
}
(Y-extent-callback . #f)
(molecule-callback . ,Arpeggio::brew_molecule)
(Y-offset-callbacks . (,Staff_symbol_referencer::callback))
- (X-offset-callbacks . (,Side_position::aligned_side))
+ (X-offset-callbacks . (,Side_position_interface::aligned_side))
(direction . -1)
(staff-position . 0.0)
(meta . ,(grob-description "Arpeggio" arpeggio-interface side-position-interface font-interface))
(direction . 1)
(font-family . roman)
(font-relative-size . -1)
- (Y-offset-callbacks . (,Side_position::aligned_side))
+ (Y-offset-callbacks . (,Side_position_interface::aligned_side))
(meta . ,(grob-description "BarNumber"
side-position-interface
text-interface font-interface break-aligned-interface))
(dash-thickness . 1.2)
(dash-length . 4.0)
(self-alignment-Y . 0)
- (Y-offset-callbacks . (,Side_position::aligned_on_self))
+ (Y-offset-callbacks . (,Side_position_interface::aligned_on_self))
(meta . ,(grob-description "Hairpin" hairpin-interface))
))
(dot-count . 1)
(staff-position . 0.0)
(Y-offset-callbacks . (,Dots::quantised_position_callback ,Staff_symbol_referencer::callback))
- (meta . ,(grob-description "Dots" font-interface dot-interface ))
+ (meta . ,(grob-description "Dots" font-interface dots-interface ))
))
(DynamicText . (
- (Y-offset-callbacks . (,Side_position::aligned_on_self))
+ (Y-offset-callbacks . (,Side_position_interface::aligned_on_self))
(molecule-callback . ,Text_item::brew_molecule)
(script-priority . 100)
(font-series . bold)
(axes . ( 1))
(padding . 0.6)
(minimum-space . 1.2)
+ (direction . -1)
(meta . ,(grob-description "DynamicLineSpanner" dynamic-interface axis-group-interface side-position-interface))
))
(Fingering . (
(molecule-callback . ,Text_item::brew_molecule)
- (X-offset-callbacks . (,Side_position::centered_on_parent ,Side_position::aligned_on_self))
+ (X-offset-callbacks . (,Side_position_interface::centered_on_parent ,Side_position_interface::aligned_on_self))
(padding . 0.6)
+ (direction . -1)
(self-alignment-X . 0)
(font-family . number)
(font-relative-size . -3)
(InstrumentName . (
(breakable . #t)
- (Y-offset-callbacks . (,Side_position::centered_on_parent
- ,Side_position::aligned_on_self))
+ (Y-offset-callbacks . (,Side_position_interface::aligned_on_self
+ ,Side_position_interface::aligned_on_support_refpoints
+))
+ (direction . 0)
(self-alignment-Y . 0)
(molecule-callback . ,Text_item::brew_molecule)
(break-align-symbol . Instrument_name)
(Accidentals . (
(molecule-callback . ,Local_key_item::brew_molecule)
- (X-offset-callbacks . (,Side_position::aligned_side))
+ (X-offset-callbacks . (,Side_position_interface::aligned_side))
(after-line-breaking-callback . ,Local_key_item::after_line_breaking)
(direction . -1)
(left-padding . 0.2)
(LyricText . (
(molecule-callback . ,Text_item::brew_molecule)
- (X-offset-callbacks . (,Side_position::aligned_on_self))
+ (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
(self-alignment-X . 0)
(non-rhythmic . #t)
(word-space . 0.6)
(RehearsalMark . (
(molecule-callback . ,Text_item::brew_molecule)
- (X-offset-callbacks . (,Side_position::aligned_on_self))
+ (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
(self-alignment-X . 0)
(direction . 1)
(self-alignment-X . 0)
(text . "8")
(visibility-lambda . ,begin-of-line-visible)
- (X-offset-callbacks . (,Side_position::centered_on_parent ,Side_position::aligned_on_self))
- (Y-offset-callbacks . (,Side_position::aligned_side))
+ (X-offset-callbacks . (,Side_position_interface::centered_on_parent ,Side_position_interface::aligned_on_self))
+ (Y-offset-callbacks . (,Side_position_interface::aligned_side))
(molecule-callback . ,Text_item::brew_molecule)
(font-shape . italic)
(font-family . roman)
(X-extent-callback . ,Rest::extent_callback)
(Y-extent-callback . ,Rest::extent_callback)
(molecule-callback . ,Rest::brew_molecule)
+ (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
(minimum-beam-collision-distance . 1.5)
(meta . ,(grob-description "Rest"
rhythmic-head-interface
+ staff-symbol-referencer-interface
rest-interface))
))
(RestCollision . (
(Script . (
(molecule-callback . ,Script::brew_molecule)
- (X-offset-callbacks . (,Side_position::centered_on_parent))
+ (X-offset-callbacks . (,Side_position_interface::centered_on_parent))
(after-line-breaking-callback . ,Script::after_line_breaking)
(meta . ,(grob-description "Script" script-interface side-position-interface font-interface))
))
(StaffSymbol . (
(molecule-callback . ,Staff_symbol::brew_molecule)
(staff-space . 1.0)
- (line-count . 5 )
+ (line-count . 5)
+ (layer . 0)
(meta . ,(grob-description "StaffSymbol" staff-symbol-interface ))
))
(SostenutoPedal . (
(molecule-callback . ,Text_item::brew_molecule)
- (X-offset-callbacks . (,Side_position::aligned_on_self))
+ (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
(Y-offset-callbacks .
- (,Side_position::aligned_side
- ,Side_position::centered_on_parent))
+ (,Side_position_interface::aligned_side
+ ,Side_position_interface::centered_on_parent))
(no-spacing-rods . #t)
(font-shape . italic)
(self-alignment-X . 0)
(no-spacing-rods . #t)
(molecule-callback . ,Sustain_pedal::brew_molecule)
(self-alignment-X . 0)
- (X-offset-callbacks . (,Side_position::aligned_on_self))
+ (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
(Y-offset-callbacks .
- (,Side_position::aligned_side
- ,Side_position::centered_on_parent))
+ (,Side_position_interface::aligned_side
+ ,Side_position_interface::centered_on_parent))
(meta . ,(grob-description "SustainPedal" sustain-pedal-interface side-position-interface font-interface))
))
(font-shape . italic)
(no-spacing-rods . #t)
(self-alignment-X . 0)
- (X-offset-callbacks . (,Side_position::aligned_on_self))
+ (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
(Y-offset-callbacks .
- (,Side_position::aligned_side
- ,Side_position::centered_on_parent))
+ (,Side_position_interface::aligned_side
+ ,Side_position_interface::centered_on_parent))
(meta . ,(grob-description "UnaChordaPedal" text-interface font-interface))
))
(direction . 1)
(padding . 1)
(font-style . volta)
- (Y-offset-callbacks . (,Side_position::aligned_side))
+ (Y-offset-callbacks . (,Side_position_interface::aligned_side))
(thickness . 1.6) ; stafflinethickness
(height . 2.0) ; staffspace;
(minimum-space . 5)