private. Changes throughout.
* lily/vertical-align-engraver.cc (acknowledge_grob): read
alignAboveContext and alignBelowContext
2005-05-09 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * lily/include/grob-info.hh (class Grob_info): make data member
+ private. Changes throughout.
+
* input/regression/alignment-order.ly: new file.
* lily/vertical-align-engraver.cc (acknowledge_grob): read
if (note
&& note->is_mus_type ("note-event")
- && Rhythmic_head::has_interface (info.grob_))
+ && Rhythmic_head::has_interface (info.grob ()))
{
if (to_boolean (get_property ("harmonicAccidentals"))
- || !ly_c_equal_p (info.grob_->get_property ("style"),
+ || !ly_c_equal_p (info.grob ()->get_property ("style"),
ly_symbol2scm ("harmonic")))
{
Accidental_entry entry;
- entry.head_ = info.grob_;
+ entry.head_ = info.grob ();
entry.origin_trans_ = dynamic_cast<Engraver *> (info.origin_translator ());
entry.origin_ = entry.origin_trans_->context ();
entry.melodic_ = note;
accidentals_.push (entry);
}
}
- else if (Tie::has_interface (info.grob_))
- ties_.push (dynamic_cast<Spanner *> (info.grob_));
- else if (Arpeggio::has_interface (info.grob_))
- left_objects_.push (info.grob_);
- else if (info.grob_
+ else if (Tie::has_interface (info.grob ()))
+ ties_.push (dynamic_cast<Spanner *> (info.grob ()));
+ else if (Arpeggio::has_interface (info.grob ()))
+ left_objects_.push (info.grob ());
+ else if (info.grob ()
->internal_has_interface (ly_symbol2scm ("finger-interface")))
- left_objects_.push (info.grob_);
+ left_objects_.push (info.grob ());
}
void
void
Ambitus_engraver::acknowledge_grob (Grob_info info)
{
- Item *item = dynamic_cast<Item *> (info.grob_);
+ Item *item = dynamic_cast<Item *> (info.grob ());
if (item)
{
- if (Note_head::has_interface (info.grob_))
+ if (Note_head::has_interface (info.grob ()))
{
Music *nr = info.music_cause ();
if (nr && nr->is_mus_type ("note-event"))
{
if (arpeggio_)
{
- if (Stem::has_interface (info.grob_))
+ if (Stem::has_interface (info.grob ()))
{
if (!arpeggio_->get_parent (Y_AXIS))
- arpeggio_->set_parent (info.grob_, Y_AXIS);
+ arpeggio_->set_parent (info.grob (), Y_AXIS);
Pointer_group_interface::add_grob (arpeggio_,
ly_symbol2scm ("stems"),
- info.grob_);
+ info.grob ());
}
/*
We can't catch local key items (accidentals) from Voice context,
see Local_key_engraver
*/
- else if (Rhythmic_head::has_interface (info.grob_))
+ else if (Rhythmic_head::has_interface (info.grob ()))
{
- Side_position_interface::add_support (arpeggio_, info.grob_);
+ Side_position_interface::add_support (arpeggio_, info.grob ());
}
- else if (Note_column::has_interface (info.grob_))
+ else if (Note_column::has_interface (info.grob ()))
{
- info.grob_->set_property ("arpeggio", arpeggio_->self_scm ());
+ info.grob ()->set_property ("arpeggio", arpeggio_->self_scm ());
}
}
}
if (stems_)
{
- if (Beam::has_interface (info.grob_))
+ if (Beam::has_interface (info.grob ()))
{
end_beam ();
}
- else if (Bar_line::has_interface (info.grob_))
+ else if (Bar_line::has_interface (info.grob ()))
{
end_beam ();
}
- else if (Rest::has_interface (info.grob_))
+ else if (Rest::has_interface (info.grob ()))
{
end_beam ();
}
}
- if (Stem::has_interface (info.grob_))
+ if (Stem::has_interface (info.grob ()))
{
- Item *stem = dynamic_cast<Item *> (info.grob_);
+ Item *stem = dynamic_cast<Item *> (info.grob ());
Music *m = info.music_cause ();
if (!m->is_mus_type ("rhythmic-event"))
{
void
Axis_group_engraver::acknowledge_grob (Grob_info i)
{
- elts_.push (i.grob_);
+ elts_.push (i.grob ());
}
/*
{
for (SCM s = interesting_; scm_is_pair (s); s = scm_cdr (s))
{
- if (i.grob_->internal_has_interface (scm_car (s)))
- Hara_kiri_group_spanner::add_interesting_item (staffline_, i.grob_);
+ if (i.grob ()->internal_has_interface (scm_car (s)))
+ Hara_kiri_group_spanner::add_interesting_item (staffline_, i.grob ());
}
}
}
void
Bar_number_engraver::acknowledge_grob (Grob_info inf)
{
- Grob *s = inf.grob_;
+ Grob *s = inf.grob ();
if (text_
&& dynamic_cast<Item *> (s)
&& s->get_property ("break-align-symbol") == ly_symbol2scm ("left-edge"))
{
if (beam_)
{
- if (Rest::has_interface (info.grob_))
+ if (Rest::has_interface (info.grob ()))
{
- info.grob_->add_offset_callback (Beam::rest_collision_callback_proc, Y_AXIS);
+ info.grob ()->add_offset_callback (Beam::rest_collision_callback_proc, Y_AXIS);
}
- else if (Stem::has_interface (info.grob_))
+ else if (Stem::has_interface (info.grob ()))
{
Moment now = now_mom ();
if (!valid_start_point ())
return;
- Item *stem = dynamic_cast<Item *> (info.grob_);
+ Item *stem = dynamic_cast<Item *> (info.grob ());
if (Stem::get_beam (stem))
return;
void
Break_align_engraver::acknowledge_grob (Grob_info inf)
{
- if (Item *item = dynamic_cast<Item *> (inf.grob_))
+ if (Item *item = dynamic_cast<Item *> (inf.grob ()))
{
/*
Removed check for item->empty (X_AXIS). --hwn 20/1/04
void
Chord_tremolo_engraver::acknowledge_grob (Grob_info info)
{
- if (beam_ && Stem::has_interface (info.grob_))
+ if (beam_ && Stem::has_interface (info.grob ()))
{
- Grob *s = info.grob_;
+ Grob *s = info.grob ();
if (start_mom_ == now_mom ())
Stem::set_beaming (s, flags_, RIGHT);
}
}
else if (repeat_
- && flags_ && !body_is_sequential_ && Stem::has_interface (info.grob_))
+ && flags_ && !body_is_sequential_ && Stem::has_interface (info.grob ()))
{
stem_tremolo_ = make_item ("StemTremolo", repeat_->self_scm ());
stem_tremolo_->set_property ("flag-count",
scm_int2num (flags_));
stem_tremolo_->set_property ("stem",
- info.grob_->self_scm ());
- stem_tremolo_->set_parent (info.grob_, X_AXIS);
+ info.grob ()->self_scm ());
+ stem_tremolo_->set_parent (info.grob (), X_AXIS);
}
}
void
Clef_engraver::acknowledge_grob (Grob_info info)
{
- Item *item = dynamic_cast<Item *> (info.grob_);
+ Item *item = dynamic_cast<Item *> (info.grob ());
if (item)
{
- if (Bar_line::has_interface (info.grob_)
+ if (Bar_line::has_interface (info.grob ())
&& scm_is_string (get_property ("clefGlyph")))
create_clef ();
}
void
Cluster_spanner_engraver::acknowledge_grob (Grob_info info)
{
- if (!beacon_ && Note_column::has_interface (info.grob_))
+ if (!beacon_ && Note_column::has_interface (info.grob ()))
{
finished_spanner_ = spanner_;
spanner_ = 0;
Item *prev_primitive = 0, *primitive = 0;
for (int i = 0; i < primitives.size (); i++)
{
- primitive = dynamic_cast<Item *> (primitives[i].grob_);
+ primitive = dynamic_cast<Item *> (primitives[i].grob ());
Music *music_cause = primitives[i].music_cause ();
int pitch
= unsmob_pitch (music_cause->get_property ("pitch"))->steps ();
void
Collision_engraver::acknowledge_grob (Grob_info i)
{
- if (Note_column::has_interface (i.grob_))
+ if (Note_column::has_interface (i.grob ()))
{
/*should check Y axis? */
- if (Note_column::has_rests (i.grob_) || i.grob_->get_parent (X_AXIS))
+ if (Note_column::has_rests (i.grob ()) || i.grob ()->get_parent (X_AXIS))
return;
- note_columns_.push (i.grob_);
+ note_columns_.push (i.grob ());
}
}
void
Custos_engraver::acknowledge_grob (Grob_info info)
{
- Item *item = dynamic_cast<Item *> (info.grob_);
+ Item *item = dynamic_cast<Item *> (info.grob ());
if (item)
{
Music *m = info.music_cause ();
- if (Bar_line::has_interface (info.grob_))
+ if (Bar_line::has_interface (info.grob ()))
custos_permitted = true;
- else if (Note_head::has_interface (info.grob_)
+ else if (Note_head::has_interface (info.grob ())
&& m
&& m->is_mus_type ("note-event"))
{
void
Dot_column_engraver::acknowledge_grob (Grob_info info)
{
- Grob *d = unsmob_grob (info.grob_->get_property ("dot"));
+ Grob *d = unsmob_grob (info.grob ()->get_property ("dot"));
if (d)
{
if (!dotcol_)
dotcol_ = make_item ("DotColumn", SCM_EOL);
}
- Dot_column::add_head (dotcol_, info.grob_);
+ Dot_column::add_head (dotcol_, info.grob ());
}
- else if (Stem::has_interface (info.grob_))
+ else if (Stem::has_interface (info.grob ()))
{
- stem_ = info.grob_;
+ stem_ = info.grob ();
}
}
void
Drum_notes_engraver::acknowledge_grob (Grob_info inf)
{
- if (Stem::has_interface (inf.grob_))
+ if (Stem::has_interface (inf.grob ()))
{
for (int i = 0; i < scripts_.size (); i++)
{
Grob *e = scripts_[i];
if (to_dir (e->get_property ("side-relative-direction")))
- e->set_property ("direction-source", inf.grob_->self_scm ());
+ e->set_property ("direction-source", inf.grob ()->self_scm ());
/*
add dep ?
*/
- e->add_dependency (inf.grob_);
- Side_position_interface::add_support (e, inf.grob_);
+ e->add_dependency (inf.grob ());
+ Side_position_interface::add_support (e, inf.grob ());
}
}
- else if (Note_column::has_interface (inf.grob_))
+ else if (Note_column::has_interface (inf.grob ()))
{
for (int i = 0; i < scripts_.size (); i++)
{
if (!e->get_parent (X_AXIS)
&& Side_position_interface::get_axis (e) == Y_AXIS)
{
- e->set_parent (inf.grob_, X_AXIS);
+ e->set_parent (inf.grob (), X_AXIS);
}
}
}
if (!line_spanner_)
return;
- if (Note_column::has_interface (info.grob_))
+ if (Note_column::has_interface (info.grob ()))
{
if (line_spanner_
/* Don't refill killed spanner */
&& line_spanner_->is_live ())
{
- Side_position_interface::add_support (line_spanner_, info.grob_);
- add_bound_item (line_spanner_, dynamic_cast<Item *> (info.grob_));
+ Side_position_interface::add_support (line_spanner_, info.grob ());
+ add_bound_item (line_spanner_, dynamic_cast<Item *> (info.grob ()));
}
if (script_ && !script_->get_parent (X_AXIS))
{
- SCM head = scm_last_pair (info.grob_->get_property ("note-heads"));
+ SCM head = scm_last_pair (info.grob ()->get_property ("note-heads"));
if (scm_is_pair (head))
script_->set_parent (unsmob_grob (scm_car (head)), X_AXIS);
}
{
if (!cresc_->get_bound (LEFT))
{
- cresc_->set_bound (LEFT, info.grob_);
+ cresc_->set_bound (LEFT, info.grob ());
add_bound_item (line_spanner_, cresc_->get_bound (LEFT));
}
}
if (finished_cresc_ && !finished_cresc_->get_bound (RIGHT))
{
- finished_cresc_->set_bound (RIGHT, info.grob_);
+ finished_cresc_->set_bound (RIGHT, info.grob ());
}
}
- else if (Script_interface::has_interface (info.grob_) && script_)
+ else if (Script_interface::has_interface (info.grob ()) && script_)
{
- SCM p = info.grob_->get_property ("script-priority");
+ SCM p = info.grob ()->get_property ("script-priority");
/*
UGH.
if (scm_is_number (p)
&& scm_to_int (p)
< scm_to_int (script_->get_property ("script-priority")))
- Side_position_interface::add_support (line_spanner_, info.grob_);
+ Side_position_interface::add_support (line_spanner_, info.grob ());
}
}
{
Grob_info info = announce_infos_[j];
- SCM meta = info.grob_->internal_get_property (meta_sym);
+ SCM meta = info.grob ()->internal_get_property (meta_sym);
SCM nm = scm_assoc (name_sym, meta);
if (scm_is_pair (nm))
nm = scm_cdr (nm);
if (unsmob_music (cause) || unsmob_grob (cause))
e->set_property ("cause", cause);
- Grob_info i;
- i.grob_ = e;
- if (!i.origin_trans_)
- i.origin_trans_ = this;
+ Grob_info i (this, e);
Engraver *g = get_daddy_engraver ();
if (g)
void
Extender_engraver::acknowledge_grob (Grob_info i)
{
- Item *item = dynamic_cast<Item *> (i.grob_);
+ Item *item = dynamic_cast<Item *> (i.grob ());
if (item
&& item->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface")))
void
Fingering_engraver::acknowledge_grob (Grob_info inf)
{
- if (Stem::has_interface (inf.grob_))
+ if (Stem::has_interface (inf.grob ()))
{
for (int i = 0; i < fingerings_.size (); i++)
{
- Side_position_interface::add_support (fingerings_[i], inf.grob_);
+ Side_position_interface::add_support (fingerings_[i], inf.grob ());
}
}
- else if (Rhythmic_head::has_interface (inf.grob_))
+ else if (Rhythmic_head::has_interface (inf.grob ()))
{
for (int i = 0; i < fingerings_.size (); i++)
{
Grob *t = fingerings_[i];
- Side_position_interface::add_support (t, inf.grob_);
+ Side_position_interface::add_support (t, inf.grob ());
if (!t->get_parent (X_AXIS))
- t->set_parent (inf.grob_, X_AXIS);
+ t->set_parent (inf.grob (), X_AXIS);
}
}
}
{
Real font_size = scm_to_double (sz);
- font_size += robust_scm2double (gi.grob_->get_property ("font-size"), 0);
- gi.grob_->set_property ("font-size", scm_make_real (font_size));
+ font_size += robust_scm2double (gi.grob ()->get_property ("font-size"), 0);
+ gi.grob ()->set_property ("font-size", scm_make_real (font_size));
}
}
void
Glissando_engraver::acknowledge_grob (Grob_info info)
{
- if (Rhythmic_head::has_interface (info.grob_))
+ if (Rhythmic_head::has_interface (info.grob ()))
{
- Grob *g = info.grob_;
+ Grob *g = info.grob ();
if (line_)
line_->set_bound (LEFT, g);
/* Check for illegal head modifier combinations */
for (int i = 0; i < primitives.size (); i++)
{
- Grob *primitive = primitives[i].grob_;
+ Grob *primitive = primitives[i].grob ();
/* compute head prefix set by inspecting primitive grob properties */
int prefix_set
int prev_pitch = 0;
for (int i = 0; i < primitives.size (); i++)
{
- Grob *primitive = primitives[i].grob_;
+ Grob *primitive = primitives[i].grob ();
Music *music_cause = primitives[i].music_cause ();
int context_info = 0;
int pitch = unsmob_pitch (music_cause->get_property ("pitch"))->steps ();
Grid_line_span_engraver::acknowledge_grob (Grob_info i)
{
int depth = i.origin_contexts (this).size ();
- if (depth && i.grob_->internal_has_interface (ly_symbol2scm ("grid-point-interface")))
+ if (depth && i.grob ()->internal_has_interface (ly_symbol2scm ("grid-point-interface")))
{
- Item *it = dynamic_cast<Item *> (i.grob_);
+ Item *it = dynamic_cast<Item *> (i.grob ());
lines_.push (it);
if (lines_.size () >= 2 && !spanline_)
Music *m = gi.music_cause ();
if (m
- && !gi.grob_->internal_has_interface (ly_symbol2scm ("multi-measure-interface")))
+ && !gi.grob ()->internal_has_interface (ly_symbol2scm ("multi-measure-interface")))
{
Moment n = now_mom ();
Moment l = m->get_length ();
Moment end = n + l;
SCM lst = scm_acons (end.smobbed_copy (),
- gi.grob_->self_scm (),
+ gi.grob ()->self_scm (),
SCM_EOL);
SCM busy = get_property ("busyGrobs");
void
Horizontal_bracket_engraver::acknowledge_grob (Grob_info gi)
{
- if (Note_column::has_interface (gi.grob_))
+ if (Note_column::has_interface (gi.grob ()))
{
for (int i = 0; i < bracket_stack_.size (); i++)
{
- Side_position_interface::add_support (bracket_stack_[i], gi.grob_);
+ Side_position_interface::add_support (bracket_stack_[i], gi.grob ());
Pointer_group_interface::add_grob (bracket_stack_[i],
- ly_symbol2scm ("columns"), gi.grob_);
+ ly_symbol2scm ("columns"), gi.grob ());
add_bound_item (bracket_stack_[i],
- gi.grob_);
+ gi.grob ());
}
}
}
void
Hyphen_engraver::acknowledge_grob (Grob_info i)
{
- Item *item = dynamic_cast<Item *> (i.grob_);
+ Item *item = dynamic_cast<Item *> (i.grob ());
// -> Text_item
if (item && item->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface")))
{
{
Translator *origin_trans_;
friend class Engraver;
+ Grob *grob_;
public:
- Grob *grob_;
- Context *context () const;
+ Grob *grob () const { return grob_; }
Translator *origin_translator () const { return origin_trans_; }
+
+ Context *context () const;
Music *music_cause ();
Link_array<Context> origin_contexts (Translator *) const;
Grob_info (Translator *, Grob *);
void
Instrument_name_engraver::acknowledge_grob (Grob_info i)
{
- if (Bar_line::has_interface (i.grob_))
+ if (Bar_line::has_interface (i.grob ()))
{
create_text ();
}
/*
Ugh - typechecking for pedal and dynamic sucks.
*/
- if (dynamic_cast<Spanner *> (i.grob_)
- && (i.grob_->internal_has_interface (ly_symbol2scm ("dynamic-interface"))
- || i.grob_->internal_has_interface (ly_symbol2scm ("piano-pedal-interface"))))
+ if (dynamic_cast<Spanner *> (i.grob ())
+ && (i.grob ()->internal_has_interface (ly_symbol2scm ("dynamic-interface"))
+ || i.grob ()->internal_has_interface (ly_symbol2scm ("piano-pedal-interface"))))
return;
/*
We could also just use stavesFound, but lets keep this working
without staffs as well.
*/
- if (dynamic_cast<Spanner *> (i.grob_)
- && ((Axis_group_interface::has_interface (i.grob_)
- && Axis_group_interface::has_axis (i.grob_, Y_AXIS)))
- && !Align_interface::has_interface (i.grob_))
+ if (dynamic_cast<Spanner *> (i.grob ())
+ && ((Axis_group_interface::has_interface (i.grob ())
+ && Axis_group_interface::has_axis (i.grob (), Y_AXIS)))
+ && !Align_interface::has_interface (i.grob ()))
{
- SCM nl = scm_cons (i.grob_->self_scm (),
+ SCM nl = scm_cons (i.grob ()->self_scm (),
get_property ("instrumentSupport"));
context ()->set_property ("instrumentSupport", nl);
void
Key_engraver::acknowledge_grob (Grob_info info)
{
- if (Clef::has_interface (info.grob_))
+ if (Clef::has_interface (info.grob ()))
{
SCM c = get_property ("createKeyOnClefChange");
if (to_boolean (c))
create_key (false);
}
}
- else if (Bar_line::has_interface (info.grob_)
+ else if (Bar_line::has_interface (info.grob ())
&& scm_is_pair (get_property ("keySignature")))
{
create_key (true);
void
Ledger_line_engraver::acknowledge_grob (Grob_info s)
{
- if (!to_boolean (s.grob_->get_property ("no-ledgers")))
+ if (!to_boolean (s.grob ()->get_property ("no-ledgers")))
Pointer_group_interface::add_grob (span_, ly_symbol2scm ("note-heads"),
- s.grob_);
+ s.grob ());
}
ADD_TRANSLATOR (Ledger_line_engraver,
"Creates the spanner to draw ledger lines, and notices objects that need ledger lines",
{
if (current_ligature ())
{
- if (Note_column::has_interface (info.grob_))
+ if (Note_column::has_interface (info.grob ()))
{
Tuplet_bracket::add_column (current_ligature (),
- dynamic_cast<Item *> (info.grob_));
+ dynamic_cast<Item *> (info.grob ()));
}
else Ligature_engraver::acknowledge_grob (info);
}
{
if (ligature_)
{
- if (Note_head::has_interface (info.grob_))
+ if (Note_head::has_interface (info.grob ()))
{
primitives_.push (info);
- info.grob_->set_property ("print-function",
+ info.grob ()->set_property ("print-function",
brew_ligature_primitive_proc);
}
- if (Rest::has_interface (info.grob_))
+ if (Rest::has_interface (info.grob ()))
{
info.music_cause ()->origin ()->warning (_ ("ignoring rest: ligature may not contain rest"));
prev_start_req_->origin ()->warning (_ ("ligature was started here"));
void
Mark_engraver::acknowledge_grob (Grob_info inf)
{
- Grob *s = inf.grob_;
+ Grob *s = inf.grob ();
if (text_ && Bar_line::has_interface (s))
{
/*
{
if (grouping_)
{
- Side_position_interface::add_support (grouping_, gi.grob_);
+ Side_position_interface::add_support (grouping_, gi.grob ());
}
}
for (int i = 0, s = primitives.size (); i < s; i++)
{
Grob_info info = primitives[i];
- Item *primitive = dynamic_cast<Item *> (info.grob_);
+ Item *primitive = dynamic_cast<Item *> (info.grob ());
int duration_log = Note_head::get_balltype (primitive);
Music *nr = info.music_cause ();
for (int i = 0; i < primitives.size (); i++)
{
- Item *primitive = dynamic_cast<Item *> (primitives[i].grob_);
+ Item *primitive = dynamic_cast<Item *> (primitives[i].grob ());
int output = scm_to_int (primitive->get_property ("primitive"));
primitive->set_property ("thickness",
scm_make_real (thickness));
Real distance = 0;
for (int i = 0; i < primitives.size (); i++)
{
- Item *current = dynamic_cast<Item *> (primitives[i].grob_);
+ Item *current = dynamic_cast<Item *> (primitives[i].grob ());
if (i == 0)
{
first = current;
void
New_fingering_engraver::acknowledge_grob (Grob_info inf)
{
- if (Rhythmic_head::has_interface (inf.grob_))
+ if (Rhythmic_head::has_interface (inf.grob ()))
{
Music *note_ev = inf.music_cause ();
if (!note_ev)
if (m->is_mus_type ("fingering-event"))
{
- add_fingering (inf.grob_, m, note_ev);
+ add_fingering (inf.grob (), m, note_ev);
}
else if (m->is_mus_type ("text-script-event"))
{
}
else if (m->is_mus_type ("script-event"))
{
- add_script (inf.grob_, m, note_ev);
+ add_script (inf.grob (), m, note_ev);
}
else if (m->is_mus_type ("string-number-event"))
{
- add_string (inf.grob_, m, note_ev);
+ add_string (inf.grob (), m, note_ev);
}
else if (m->is_mus_type ("harmonic-event"))
{
- inf.grob_->set_property ("style", ly_symbol2scm ("harmonic"));
- Grob *d = unsmob_grob (inf.grob_->get_property ("dot"));
+ inf.grob ()->set_property ("style", ly_symbol2scm ("harmonic"));
+ Grob *d = unsmob_grob (inf.grob ()->get_property ("dot"));
if (d)
d->suicide ();
}
}
- heads_.push (inf.grob_);
+ heads_.push (inf.grob ());
}
- else if (Stem::has_interface (inf.grob_))
+ else if (Stem::has_interface (inf.grob ()))
{
- stem_ = inf.grob_;
+ stem_ = inf.grob ();
}
}
void
Note_head_line_engraver::acknowledge_grob (Grob_info info)
{
- if (Rhythmic_head::has_interface (info.grob_))
+ if (Rhythmic_head::has_interface (info.grob ()))
{
- head_ = info.grob_;
+ head_ = info.grob ();
if (to_boolean (get_property ("followVoice")))
{
Context *tr = context ();
void
Ottava_spanner_engraver::acknowledge_grob (Grob_info info)
{
- Item *it = dynamic_cast<Item *> (info.grob_);
- if (span_ && it && Note_column::has_interface (info.grob_))
+ Item *it = dynamic_cast<Item *> (info.grob ());
+ if (span_ && it && Note_column::has_interface (info.grob ()))
{
Side_position_interface::add_support (span_, it);
/*
should typecheck pred.
*/
- SCM result = scm_call_1 (pred, inf.grob_->self_scm ());
+ SCM result = scm_call_1 (pred, inf.grob ()->self_scm ());
if (to_boolean (result))
{
SCM sym = o->get_property ("grob-property");
SCM val = o->get_property ("grob-value");
- inf.grob_->internal_set_property (sym, val);
+ inf.grob ()->internal_set_property (sym, val);
}
}
else
Context * d = inf.context ();
SCM proc = o->get_property ("procedure");
scm_call_3 (proc,
- inf.grob_->self_scm (),
+ inf.grob ()->self_scm (),
d->self_scm (),
context ()->self_scm ());
}
{
if (text_)
{
- if (Note_head::has_interface (i.grob_))
+ if (Note_head::has_interface (i.grob ()))
{
Grob *t = text_;
- Side_position_interface::add_support (t, i.grob_);
+ Side_position_interface::add_support (t, i.grob ());
if (Side_position_interface::get_axis (t) == X_AXIS
&& !t->get_parent (Y_AXIS))
- t->set_parent (i.grob_, Y_AXIS);
+ t->set_parent (i.grob (), Y_AXIS);
}
- if (Stem::has_interface (i.grob_))
+ if (Stem::has_interface (i.grob ()))
{
- Side_position_interface::add_support (text_, i.grob_);
+ Side_position_interface::add_support (text_, i.grob ());
}
}
}
void
Phrasing_slur_engraver::acknowledge_grob (Grob_info info)
{
- Grob *e = info.grob_;
- if (Note_column::has_interface (info.grob_))
+ Grob *e = info.grob ();
+ if (Note_column::has_interface (info.grob ()))
{
for (int i = slurs_.size (); i--;)
Slur::add_column (slurs_[i], e);
{
for (Pedal_info *p = info_list_; p && p->name_; p++)
{
- if (Note_column::has_interface (info.grob_))
+ if (Note_column::has_interface (info.grob ()))
{
if (p->line_spanner_)
{
- Side_position_interface::add_support (p->line_spanner_, info.grob_);
- add_bound_item (p->line_spanner_, info.grob_);
+ Side_position_interface::add_support (p->line_spanner_, info.grob ());
+ add_bound_item (p->line_spanner_, info.grob ());
}
if (p->bracket_)
- add_bound_item (p->bracket_, info.grob_);
+ add_bound_item (p->bracket_, info.grob ());
if (p->finished_bracket_)
- add_bound_item (p->finished_bracket_, info.grob_);
+ add_bound_item (p->finished_bracket_, info.grob ());
}
}
}
{
SCM newpos = get_property ("squashedPosition");
if (scm_is_number (newpos)
- && Note_head::has_interface (i.grob_))
+ && Note_head::has_interface (i.grob ()))
{
- i.grob_->set_property ("staff-position", newpos);
+ i.grob ()->set_property ("staff-position", newpos);
}
}
void
Rest_collision_engraver::acknowledge_grob (Grob_info i)
{
- if (Note_column::has_interface (i.grob_))
+ if (Note_column::has_interface (i.grob ()))
{
- note_columns_.push (i.grob_);
- if (Note_column::has_rests (i.grob_))
+ note_columns_.push (i.grob ());
+ if (Note_column::has_rests (i.grob ()))
rest_count_++;
}
}
void
Rhythmic_column_engraver::acknowledge_grob (Grob_info i)
{
- Item *item = dynamic_cast<Item *> (i.grob_);
+ Item *item = dynamic_cast<Item *> (i.grob ());
if (!item || item->get_parent (X_AXIS))
return;
if (Stem::has_interface (item))
Score_engraver::announce_grob (Grob_info info)
{
announce_infos_.push (info);
- pscore_->root_system ()->typeset_grob (info.grob_);
- elems_.push (info.grob_);
+ pscore_->root_system ()->typeset_grob (info.grob ());
+ elems_.push (info.grob ());
}
void
void
Score_engraver::acknowledge_grob (Grob_info gi)
{
- if (Staff_spacing::has_interface (gi.grob_))
+ if (Staff_spacing::has_interface (gi.grob ()))
{
Pointer_group_interface::add_grob (command_column_,
ly_symbol2scm ("spacing-wishes"),
- gi.grob_);
+ gi.grob ());
}
- if (Note_spacing::has_interface (gi.grob_))
+ if (Note_spacing::has_interface (gi.grob ()))
{
Pointer_group_interface::add_grob (musical_column_,
ly_symbol2scm ("spacing-wishes"),
- gi.grob_);
+ gi.grob ());
}
- if (Axis_group_interface::has_interface (gi.grob_)
- && gi.grob_->internal_has_interface (ly_symbol2scm ("vertically-spaceable-interface")))
+ if (Axis_group_interface::has_interface (gi.grob ())
+ && gi.grob ()->internal_has_interface (ly_symbol2scm ("vertically-spaceable-interface")))
{
SCM spaceable = get_property ("verticallySpacedContexts");
Context *orig = gi.origin_contexts (this)[0];
{
Pointer_group_interface::add_grob (system_,
ly_symbol2scm ("spaceable-staves"),
- gi.grob_);
+ gi.grob ());
}
}
}
void
Script_column_engraver::acknowledge_grob (Grob_info inf)
{
- Item *thing = dynamic_cast<Item *> (inf.grob_);
- if (thing && Side_position_interface::has_interface (inf.grob_)) // ugh FIXME
+ Item *thing = dynamic_cast<Item *> (inf.grob ());
+ if (thing && Side_position_interface::has_interface (inf.grob ())) // ugh FIXME
{
if (!Item::is_breakable (thing)
- && Side_position_interface::get_axis (inf.grob_) == Y_AXIS)
+ && Side_position_interface::get_axis (inf.grob ()) == Y_AXIS)
{
scripts_.push (thing);
}
Script_engraver::acknowledge_grob (Grob_info info)
{
int script_count = scripts_.size ();
- if (Stem::has_interface (info.grob_))
+ if (Stem::has_interface (info.grob ()))
{
for (int i = 0; i < script_count; i++)
{
Grob *e = scripts_[i].script_;
if (to_dir (e->get_property ("side-relative-direction")))
- e->set_property ("direction-source", info.grob_->self_scm ());
+ e->set_property ("direction-source", info.grob ()->self_scm ());
/* FIXME: add dependency */
- e->add_dependency (info.grob_);
- Side_position_interface::add_support (e, info.grob_);
+ e->add_dependency (info.grob ());
+ Side_position_interface::add_support (e, info.grob ());
}
}
- else if (Rhythmic_head::has_interface (info.grob_)
+ else if (Rhythmic_head::has_interface (info.grob ())
&& info.music_cause ())
{
for (int i = 0; i < script_count; i++)
if (Side_position_interface::get_axis (e) == X_AXIS
&& !e->get_parent (Y_AXIS))
{
- e->set_parent (info.grob_, Y_AXIS);
- e->add_dependency (info.grob_);
+ e->set_parent (info.grob (), Y_AXIS);
+ e->add_dependency (info.grob ());
}
- Side_position_interface::add_support (e, info.grob_);
+ Side_position_interface::add_support (e, info.grob ());
}
}
- else if (Note_column::has_interface (info.grob_))
+ else if (Note_column::has_interface (info.grob ()))
{
/* Make note column the parent of the script. That is not
correct, but due to seconds in a chord, noteheads may be
if (!e->get_parent (X_AXIS)
&& Side_position_interface::get_axis (e) == Y_AXIS)
- e->set_parent (info.grob_, X_AXIS);
+ e->set_parent (info.grob (), X_AXIS);
}
}
- else if (Slur::has_interface (info.grob_))
- slur_ = dynamic_cast<Spanner *> (info.grob_);
+ else if (Slur::has_interface (info.grob ()))
+ slur_ = dynamic_cast<Spanner *> (info.grob ());
}
void
void
Separating_line_group_engraver::acknowledge_grob (Grob_info i)
{
- Item *it = dynamic_cast<Item *> (i.grob_);
+ Item *it = dynamic_cast<Item *> (i.grob ());
if (!it)
return;
if (it->get_parent (X_AXIS)
void
Slur_engraver::acknowledge_grob (Grob_info info)
{
- Grob *e = info.grob_;
- if (Note_column::has_interface (info.grob_))
+ Grob *e = info.grob ();
+ if (Note_column::has_interface (info.grob ()))
{
for (int i = slurs_.size (); i--;)
Slur::add_column (slurs_[i], e);
void
Spacing_engraver::acknowledge_grob (Grob_info i)
{
- if (Note_spacing::has_interface (i.grob_) || Staff_spacing::has_interface (i.grob_))
+ if (Note_spacing::has_interface (i.grob ()) || Staff_spacing::has_interface (i.grob ()))
{
- Pointer_group_interface::add_grob (spacing_, ly_symbol2scm ("wishes"), i.grob_);
+ Pointer_group_interface::add_grob (spacing_, ly_symbol2scm ("wishes"), i.grob ());
}
- if (i.grob_->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface"))
- || i.grob_->internal_has_interface (ly_symbol2scm ("multi-measure-event")))
+ if (i.grob ()->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface"))
+ || i.grob ()->internal_has_interface (ly_symbol2scm ("multi-measure-event")))
return;
/*
void
Span_arpeggio_engraver::acknowledge_grob (Grob_info info)
{
- if (Arpeggio::has_interface (info.grob_)
+ if (Arpeggio::has_interface (info.grob ())
&& info.origin_contexts (this).size ()) // huh? what's this test for?
{
- arpeggios_.push (info.grob_);
+ arpeggios_.push (info.grob ());
}
}
Span_bar_engraver::acknowledge_grob (Grob_info i)
{
int depth = i.origin_contexts (this).size ();
- if (depth && Bar_line::has_interface (i.grob_))
+ if (depth && Bar_line::has_interface (i.grob ()))
{
- Item *it = dynamic_cast<Item *> (i.grob_);
+ Item *it = dynamic_cast<Item *> (i.grob ());
bars_.push (it);
if (bars_.size () >= 2 && !spanbar_)
void
Staff_collecting_engraver::acknowledge_grob (Grob_info gi)
{
- if (Staff_symbol::has_interface (gi.grob_))
+ if (Staff_symbol::has_interface (gi.grob ()))
{
SCM staffs = get_property ("stavesFound");
- staffs = scm_cons (gi.grob_->self_scm (), staffs);
+ staffs = scm_cons (gi.grob ()->self_scm (), staffs);
context ()->set_property ("stavesFound", staffs);
}
symbol?
*/
if (span_)
- s.grob_->set_property ("staff-symbol", span_->self_scm ());
+ s.grob ()->set_property ("staff-symbol", span_->self_scm ());
}
ADD_TRANSLATOR (Staff_symbol_engraver,
void
Stanza_number_align_engraver::acknowledge_grob (Grob_info gi)
{
- Grob *h = gi.grob_;
+ Grob *h = gi.grob ();
if (h->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface")))
lyrics_.push (h);
Stanza_number_engraver::acknowledge_grob (Grob_info inf)
{
if (text_
- && inf.grob_->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface")))
+ && inf.grob ()->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface")))
{
- Side_position_interface::add_support (text_, inf.grob_);
+ Side_position_interface::add_support (text_, inf.grob ());
}
}
void
Stem_engraver::acknowledge_grob (Grob_info gi)
{
- if (Rhythmic_head::has_interface (gi.grob_))
+ if (Rhythmic_head::has_interface (gi.grob ()))
{
- if (Rhythmic_head::get_stem (gi.grob_))
+ if (Rhythmic_head::get_stem (gi.grob ()))
return;
Music *cause = gi.music_cause ();
gi.music_cause ()->origin ()->warning (_f ("maybe input should specify polyphonic voices"));
}
- Stem::add_head (stem_, gi.grob_);
+ Stem::add_head (stem_, gi.grob ());
}
}
void
System_start_delimiter_engraver::acknowledge_grob (Grob_info inf)
{
- if (Staff_symbol::has_interface (inf.grob_))
+ if (Staff_symbol::has_interface (inf.grob ()))
{
/*
don't add as Axis_group_interface::add_element (delim_, ),
because that would set the parent as well */
- Pointer_group_interface::add_grob (delim_, ly_symbol2scm ("elements"), inf.grob_);
+ Pointer_group_interface::add_grob (delim_, ly_symbol2scm ("elements"), inf.grob ());
}
- else if (System_start_delimiter::has_interface (inf.grob_))
+ else if (System_start_delimiter::has_interface (inf.grob ()))
{
- SCM gl = inf.grob_->get_property ("glyph");
+ SCM gl = inf.grob ()->get_property ("glyph");
SCM my_gl = delim_->get_property ("glyph");
/*
*/
if (scm_is_string (gl) && ly_c_equal_p (gl, scm_makfrom0str ("brace"))
&& scm_is_string (my_gl) && ly_c_equal_p (my_gl, scm_makfrom0str ("bracket")))
- inf.grob_->translate_axis (-0.8, X_AXIS); // ugh
+ inf.grob ()->translate_axis (-0.8, X_AXIS); // ugh
else if (scm_is_string (gl) && ly_c_equal_p (gl, scm_makfrom0str ("bracket"))
&& scm_is_string (my_gl) && ly_c_equal_p (my_gl, scm_makfrom0str ("bracket")))
{
- inf.grob_->translate_axis (-0.8, X_AXIS); // ugh
- inf.grob_->set_property ("arch-height",
- scm_make_real (scm_to_double (inf.grob_->get_property
+ inf.grob ()->translate_axis (-0.8, X_AXIS); // ugh
+ inf.grob ()->set_property ("arch-height",
+ scm_make_real (scm_to_double (inf.grob ()->get_property
("arch-height")) + 0.5));
}
}
void
Text_engraver::acknowledge_grob (Grob_info inf)
{
- if (Rhythmic_head::has_interface (inf.grob_))
+ if (Rhythmic_head::has_interface (inf.grob ()))
{
for (int i = 0; i < texts_.size (); i++)
{
Grob *t = texts_[i];
- Side_position_interface::add_support (t, inf.grob_);
+ Side_position_interface::add_support (t, inf.grob ());
/*
ugh.
*/
if (Side_position_interface::get_axis (t) == X_AXIS
&& !t->get_parent (Y_AXIS))
- t->set_parent (inf.grob_, Y_AXIS);
+ t->set_parent (inf.grob (), Y_AXIS);
else if (Side_position_interface::get_axis (t) == Y_AXIS
&& !t->get_parent (X_AXIS))
- t->set_parent (inf.grob_, X_AXIS);
+ t->set_parent (inf.grob (), X_AXIS);
}
}
- if (Stem::has_interface (inf.grob_))
+ if (Stem::has_interface (inf.grob ()))
{
for (int i = 0; i < texts_.size (); i++)
{
- Side_position_interface::add_support (texts_[i], inf.grob_);
+ Side_position_interface::add_support (texts_[i], inf.grob ());
}
}
}
Spanner *spans[2] ={span_, finished_};
for (int i = 0; i < 2; i++)
{
- if (spans[i] && Note_column::has_interface (info.grob_))
+ if (spans[i] && Note_column::has_interface (info.grob ()))
{
- Side_position_interface::add_support (spans[i], info.grob_);
- add_bound_item (spans[i], dynamic_cast<Item *> (info.grob_));
+ Side_position_interface::add_support (spans[i], info.grob ());
+ add_bound_item (spans[i], dynamic_cast<Item *> (info.grob ()));
}
}
}
void
Tie_engraver::acknowledge_grob (Grob_info i)
{
- if (Note_head::has_interface (i.grob_))
+ if (Note_head::has_interface (i.grob ()))
{
- Grob *h = i.grob_;
+ Grob *h = i.grob ();
now_heads_.push (h);
for (int i = heads_to_tie_.size (); i--;)
{
Spanner *spans[2] ={span_, finished_};
for (int i = 0; i < 2; i++)
{
- if (spans[i] && Note_column::has_interface (info.grob_))
+ if (spans[i] && Note_column::has_interface (info.grob ()))
{
- Side_position_interface::add_support (spans[i], info.grob_);
- add_bound_item (spans[i], dynamic_cast<Item *> (info.grob_));
+ Side_position_interface::add_support (spans[i], info.grob ());
+ add_bound_item (spans[i], dynamic_cast<Item *> (info.grob ()));
}
}
}
void
Tuplet_engraver::acknowledge_grob (Grob_info i)
{
- if (Note_column::has_interface (i.grob_))
+ if (Note_column::has_interface (i.grob ()))
{
for (int j = 0; j < tuplets_.size (); j++)
if (tuplets_[j].spanner_)
Tuplet_bracket::add_column (tuplets_[j].spanner_,
- dynamic_cast<Item *> (i.grob_));
+ dynamic_cast<Item *> (i.grob ()));
}
}
* The paper column where we put the whole ligature into.
*/
Paper_column *column
- = dynamic_cast<Item *> (primitives[0].grob_)->get_column ();
+ = dynamic_cast<Item *> (primitives[0].grob ())->get_column ();
Real join_thickness
= thickness * column->get_layout ()->get_dimension (ly_symbol2scm ("linethickness"));
int prev_prefix_set = 0;
for (int i = 0; i < primitives.size (); i++)
{
- Item *primitive = dynamic_cast<Item *> (primitives[i].grob_);
+ Item *primitive = dynamic_cast<Item *> (primitives[i].grob ());
int prefix_set
= scm_to_int (primitive->get_property ("prefix-set"));
int context_info
String prev_glyph_name = "";
for (int i = 0; i < primitives.size (); i++)
{
- Item *primitive = dynamic_cast<Item *> (primitives[i].grob_);
+ Item *primitive = dynamic_cast<Item *> (primitives[i].grob ());
int delta_pitch;
SCM delta_pitch_scm = primitive->get_property ("delta-pitch");
#if 0 // experimental code to collapse spacing after ligature
/* TODO: set to max (old/new spacing-increment), since other
voices/staves also may want to set this property. */
- Item *first_primitive = dynamic_cast<Item *> (primitives[0].grob_);
+ Item *first_primitive = dynamic_cast<Item *> (primitives[0].grob ());
Paper_column *paper_column = first_primitive->get_column ();
paper_column->warning (_f ("Vaticana_ligature_engraver: "
"setting `spacing-increment = %f': ptr =%ul",
{
int sz = i.origin_contexts ((Translator *)this).size ();
- return sz > 0 && Axis_group_interface::has_interface (i.grob_)
- && !i.grob_->get_parent (Y_AXIS) && Axis_group_interface::has_axis (i.grob_, Y_AXIS);
+ return sz > 0 && Axis_group_interface::has_interface (i.grob ())
+ && !i.grob ()->get_parent (Y_AXIS) && Axis_group_interface::has_axis (i.grob (), Y_AXIS);
}
void
String id = i.context ()->id_string ();
scm_hash_set_x (id_to_group_hashtab_, scm_makfrom0str (id.to_str0 ()),
- i.grob_->self_scm ());
+ i.grob ()->self_scm ());
SCM before_id = i.context ()->get_property ("alignAboveContext");
SCM after = scm_hash_ref (id_to_group_hashtab_, after_id, SCM_BOOL_F);
- Align_interface::add_element (valign_, i.grob_,
+ Align_interface::add_element (valign_, i.grob (),
get_property ("verticalAlignmentChildCallback"));
if (unsmob_grob (before) || unsmob_grob (after))
{
if (scm_car (s) == after)
{
- *current = scm_cons (i.grob_->self_scm(), s);
+ *current = scm_cons (i.grob ()->self_scm(), s);
break;
}
else if (scm_car (s) == before)
{
- scm_set_cdr_x (s, scm_cons (i.grob_->self_scm (),
+ scm_set_cdr_x (s, scm_cons (i.grob ()->self_scm (),
scm_cdr (s)));
break;
}
void
Volta_engraver::acknowledge_grob (Grob_info i)
{
- if (Item *item = dynamic_cast<Item *> (i.grob_))
+ if (Item *item = dynamic_cast<Item *> (i.grob ()))
{
if (Note_column::has_interface (item))
{
Volta_bracket_interface::add_bar (end_volta_span_, item);
}
}
- else if (Staff_symbol::has_interface (i.grob_))
+ else if (Staff_symbol::has_interface (i.grob ()))
{
/*
We only want to know about a single staff: then we add to the
staff_ = SCM_UNDEFINED;
if (staff_ != SCM_UNDEFINED)
- staff_ = i.grob_->self_scm ();
+ staff_ = i.grob ()->self_scm ();
}
}