SCM last_text_;
DECLARE_ACKNOWLEDGER (break_aligned);
-
+ DECLARE_ACKNOWLEDGER (grob);
+
protected:
virtual void derived_mark () const;
void stop_translation_timestep ();
}
void
-Metronome_mark_engraver::acknowledge_break_aligned (Grob_info inf)
+Metronome_mark_engraver::acknowledge_break_aligned (Grob_info info)
{
- Grob *s = inf.grob ();
+ Grob *g = info.grob ();
if (text_
- && (s->get_property_data ("break-align-symbol")
+ && !support_
+ && (g->get_property_data ("break-align-symbol")
== text_->get_property_data ("break-align-symbol")))
{
- support_ = s;
+ support_ = g;
+ text_->set_parent (g, X_AXIS);
+ }
+}
+
+void
+Metronome_mark_engraver::acknowledge_grob (Grob_info info)
+{
+ Grob *g = info.grob ();
+
+ if (text_
+ && !support_
+ && scm_member (g->get_property_data ("break-align-symbol"),
+ text_->get_property_data ("break-align-symbols"))
+ != SCM_BOOL_F)
+ {
+ text_->set_parent (g, X_AXIS);
}
}
first notational element of the measure if no time
signature is present in that measure).
*/
- Grob *mc = unsmob_grob (get_property ("currentMusicalColumn"));
- text_->set_parent (mc, X_AXIS);
+ if (Grob *mc = unsmob_grob (get_property ("currentMusicalColumn")))
+ text_->set_parent (mc, X_AXIS);
+ else if (Grob *cc = unsmob_grob (get_property ("currentCommandColumn")))
+ text_->set_parent (cc, X_AXIS);
}
text_->set_object ("side-support-elements",
grob_list_to_grob_array (get_property ("stavesFound")));
ADD_ACKNOWLEDGER (Metronome_mark_engraver, break_aligned);
+ADD_ACKNOWLEDGER (Metronome_mark_engraver, grob);
ADD_TRANSLATOR (Metronome_mark_engraver,
/* doc */
(MetronomeMark
. (
(after-line-breaking . ,ly:side-position-interface::move-to-extremal-staff)
+ (break-visibility . ,end-of-line-invisible)
(direction . ,UP)
(extra-spacing-width . (+inf.0 . -inf.0))
(outside-staff-priority . 1000)
(list ly:self-alignment-interface::x-aligned-on-self)))))
(self-alignment-X . -1)
(break-align-symbol . time-signature)
- (break-align-symbols . (time-signature))
+ (break-align-symbols . (time-signature multi-measure-rest))
(meta . ((class . Item)
(interfaces . (font-interface
metronome-mark-interface
(MultiMeasureRest
. (
+ (break-align-symbol . multi-measure-rest)
(expand-limit . 10)
(hair-thickness . 2.0)
(padding . 1)