]> git.donarmstrong.com Git - lilypond.git/commitdiff
Avoids TupletBracket vs Fingering and TupletBracket vs StringNumber collisions.
authorMike Solomon <mike@apollinemike.com>
Mon, 9 Jan 2012 09:55:31 +0000 (10:55 +0100)
committerMike Solomon <mike@apollinemike.com>
Mon, 9 Jan 2012 09:55:31 +0000 (10:55 +0100)
Uses the same logic in tuplet-engraver.cc as that used for Scripts.

input/regression/tuplet-bracket-avoid-fingering.ly [new file with mode: 0644]
input/regression/tuplet-bracket-avoid-string-number.ly [new file with mode: 0644]
lily/tuplet-engraver.cc

diff --git a/input/regression/tuplet-bracket-avoid-fingering.ly b/input/regression/tuplet-bracket-avoid-fingering.ly
new file mode 100644 (file)
index 0000000..068cb16
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.15.24"
+
+\header {
+  texidoc = "@code{TupletBracket} grobs avoid @code{Fingering} grobs.
+"
+}
+
+\relative d'' {
+ \override TupletBracket #'direction = #UP
+ \times 2/3 { d4 a8-4 }
+}
diff --git a/input/regression/tuplet-bracket-avoid-string-number.ly b/input/regression/tuplet-bracket-avoid-string-number.ly
new file mode 100644 (file)
index 0000000..14c6b6e
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.15.24"
+
+\header {
+  texidoc = "@code{TupletBracket} grobs avoid @code{StringNumber} grobs.
+"
+}
+
+\relative d'' {
+ \override TupletBracket #'direction = #UP
+ \times 2/3 { d4 <a\4>8 }
+}
index 0174524f235aa915c409471e6feebb180f207c9c..1b75bf923cd8b9cd33ee4909dae2ed1784465061 100644 (file)
@@ -65,6 +65,8 @@ protected:
 
   DECLARE_ACKNOWLEDGER (note_column);
   DECLARE_ACKNOWLEDGER (script);
+  DECLARE_ACKNOWLEDGER (finger);
+  DECLARE_ACKNOWLEDGER (string_number);
   DECLARE_TRANSLATOR_LISTENER (tuplet_span);
   virtual void finalize ();
   void start_translation_timestep ();
@@ -219,6 +221,28 @@ Tuplet_engraver::acknowledge_script (Grob_info inf)
       }
 }
 
+void
+Tuplet_engraver::acknowledge_finger (Grob_info inf)
+{
+  for (vsize j = 0; j < tuplets_.size (); j++)
+    if (tuplets_[j].bracket_)
+      {
+        Item *i = dynamic_cast<Item *> (inf.grob ());
+        Tuplet_bracket::add_script (tuplets_[j].bracket_, i);
+      }
+}
+
+void
+Tuplet_engraver::acknowledge_string_number (Grob_info inf)
+{
+  for (vsize j = 0; j < tuplets_.size (); j++)
+    if (tuplets_[j].bracket_)
+      {
+        Item *i = dynamic_cast<Item *> (inf.grob ());
+        Tuplet_bracket::add_script (tuplets_[j].bracket_, i);
+      }
+}
+
 void
 Tuplet_engraver::start_translation_timestep ()
 {
@@ -246,6 +270,8 @@ Tuplet_engraver::Tuplet_engraver ()
 
 ADD_ACKNOWLEDGER (Tuplet_engraver, note_column);
 ADD_ACKNOWLEDGER (Tuplet_engraver, script);
+ADD_ACKNOWLEDGER (Tuplet_engraver, finger);
+ADD_ACKNOWLEDGER (Tuplet_engraver, string_number);
 ADD_TRANSLATOR (Tuplet_engraver,
                 /* doc */
                 "Catch tuplet events and generate appropriate bracket.",