From 304607ae52d9a6e02776f24aefd2cb3dcbb83aba Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Wed, 14 Jul 2004 21:44:18 +0000 Subject: [PATCH] mention LyricText --- ChangeLog | 10 ++++++++++ lily/lyric-engraver.cc | 2 +- lily/metronome-engraver.cc | 32 ++++++++------------------------ scm/define-grobs.scm | 7 ++++--- scm/define-markup-commands.scm | 8 ++++++++ scm/translation-functions.scm | 8 +++++--- 6 files changed, 36 insertions(+), 31 deletions(-) diff --git a/ChangeLog b/ChangeLog index dfa06f68c3..ae096d4291 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2004-07-14 Han-Wen Nienhuys + + * lily/lyric-engraver.cc: mention LyricText + +2004-07-13 Han-Wen Nienhuys + + * scm/translation-functions.scm (format-metronome-markup): backport. + + * scm/define-markup-commands.scm (general-align): add function. + 2004-07-09 Han-Wen Nienhuys * lily/axis-group-engraver.cc (process_acknowledged_grobs): diff --git a/lily/lyric-engraver.cc b/lily/lyric-engraver.cc index 4c914d4e90..71d449468a 100644 --- a/lily/lyric-engraver.cc +++ b/lily/lyric-engraver.cc @@ -151,7 +151,7 @@ Lyric_engraver::stop_translation_timestep () ENTER_DESCRIPTION (Lyric_engraver, /* descr */ "", -/* creats*/ "", +/* creats*/ "LyricText", /* accepts */ "lyric-event", /* acks */ "", /* reads */ "", diff --git a/lily/metronome-engraver.cc b/lily/metronome-engraver.cc index 63c7b04aad..280eeb2031 100644 --- a/lily/metronome-engraver.cc +++ b/lily/metronome-engraver.cc @@ -8,6 +8,7 @@ #include +#include "note-column.hh" #include "bar-line.hh" #include "time-signature.hh" #include "engraver.hh" @@ -26,16 +27,13 @@ public: protected: Item *text_; Grob *bar_line_; + Music *mark_ev_; + void create_items (Music*); protected: virtual void stop_translation_timestep (); - virtual void acknowledge_grob (Grob_info); - void create_items (Music*); virtual bool try_music (Music *ev); virtual void process_music (); - -private: - Music *mark_ev_; }; Metronome_mark_engraver::Metronome_mark_engraver () @@ -44,29 +42,15 @@ Metronome_mark_engraver::Metronome_mark_engraver () mark_ev_ = 0; } -void -Metronome_mark_engraver::acknowledge_grob (Grob_info inf) -{ - if (Bar_line::has_interface (inf.grob_)) - { - bar_line_ = inf.grob_; - } - else if (text_ && Time_signature::has_interface (inf.grob_)) - { - text_->set_parent (inf.grob_, X_AXIS); - } -} - void Metronome_mark_engraver::stop_translation_timestep () { if (text_) { - if (bar_line_ && !text_->get_parent (X_AXIS)) - text_->set_parent (bar_line_, X_AXIS); - + Grob*mc = unsmob_grob (get_property( "currentMusicalColumn")); + text_->set_parent (mc, X_AXIS); text_->set_property ("side-support-elements" , get_property ("stavesFound")); - typeset_grob (text_); + text_ =0; } mark_ev_ = 0; @@ -80,8 +64,8 @@ Metronome_mark_engraver::create_items (Music *rq) return; text_ = make_item ("MetronomeMark"); - announce_grob (text_, rq->self_scm ()); + } @@ -117,6 +101,6 @@ ENTER_DESCRIPTION (Metronome_mark_engraver, , /* creats*/ "MetronomeMark", /* accepts */ "metronome-change-event", -/* acks */ "time-signature-interface bar-line-interface", + /* acks */ "", /* reads */ "stavesFound metronomeMarkFormatter", /* write */ ""); diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index c3d497b3ec..18ae29fc18 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -563,10 +563,11 @@ (print-function . ,Text_item::print) (Y-offset-callbacks . (,Side_position_interface::aligned_side)) (direction . 1) - (breakable . #t) - (break-visibility . ,end-of-line-invisible) (padding . 0.8) - (meta . ((interfaces . (text-interface side-position-interface font-interface metronome-mark-interface item-interface)))) + (meta . ((interfaces . (text-interface side-position-interface + font-interface + metronome-mark-interface + item-interface)))) )) (MeasureGrouping . ( diff --git a/scm/define-markup-commands.scm b/scm/define-markup-commands.scm index 046dee06f6..b2734495e9 100644 --- a/scm/define-markup-commands.scm +++ b/scm/define-markup-commands.scm @@ -70,6 +70,14 @@ determines the space between each markup in @var{args}." (chain-assoc-get 'word-space props) (map (lambda (m) (interpret-markup paper props m)) args))) +(def-markup-command (general-align paper props axis dir arg) (integer? number? markup?) + "Align @var{arg} in @var{axis} direction to the @var{dir} side." + (let* ((m (interpret-markup paper props arg))) + + (ly:stencil-align-to! m axis dir) + m + )) + (def-markup-command (combine paper props m1 m2) (markup? markup?) "Print two markups on top of each other." (ly:stencil-add diff --git a/scm/translation-functions.scm b/scm/translation-functions.scm index ded01eadfc..b4888a4ec9 100644 --- a/scm/translation-functions.scm +++ b/scm/translation-functions.scm @@ -17,12 +17,14 @@ (let* ((dur (ly:music-property event 'tempo-unit)) (count (ly:music-property event 'metronome-count)) - (note-mark (make-note-by-number-markup (ly:duration-log dur) + (note-mark (make-smaller-markup + (make-note-by-number-markup (ly:duration-log dur) (ly:duration-dot-count dur) - 1) ) ) + 1)))) + (make-line-markup (list - note-mark + (make-general-align-markup Y DOWN note-mark) (make-simple-markup "=") (make-simple-markup (number->string count)) -- 2.39.5