lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Allows for rider grobs in outside-staff-priority. (issue4639075)


From: mtsolo
Subject: Allows for rider grobs in outside-staff-priority. (issue4639075)
Date: Mon, 27 Jun 2011 17:38:04 +0000

Reviewers: ,

Message:
Useful for stuff like:


\version "2.15"
\relative c' {
\override TupletBracket #'outside-staff-priority = #1
\times 2/3 { c2^.^>^|^-^\espressivo c c }
}


Description:
Allows for rider grobs in outside-staff-priority.

Please review this at http://codereview.appspot.com/4639075/

Affected files:
  M lily/axis-group-interface.cc
  M lily/grob.cc
  M lily/tuplet-engraver.cc


Index: lily/axis-group-interface.cc
diff --git a/lily/axis-group-interface.cc b/lily/axis-group-interface.cc
index 0b399fd2482e5fa8ef9da603a416471dd9281ac8..f2cac5c52c34cf8c0a0615fb3fabd495a3a18f43 100644
--- a/lily/axis-group-interface.cc
+++ b/lily/axis-group-interface.cc
@@ -625,6 +625,7 @@ add_grobs_of_one_priority (Skyline_pair *const skylines,
       /* do one pass */
       for (vsize i = elements.size (); i--;)
        {
+          extract_grob_set (elements[i], "outside-staff-riders", riders);
          Direction dir = get_grob_direction (elements[i]);
          if (dir == CENTER)
            {
@@ -634,6 +635,9 @@ add_grobs_of_one_priority (Skyline_pair *const skylines,

          Box b (elements[i]->extent (x_common, X_AXIS),
                 elements[i]->extent (y_common, Y_AXIS));
+          for (vsize j = 0; j < riders.size (); j++)
+            b.unite(Box (riders[j]->extent (x_common, X_AXIS),
+                        riders[j]->extent (y_common, Y_AXIS)));
SCM horizon_padding_scm = elements[i]->get_property ("outside-staff-horizontal-padding");
          Real horizon_padding = robust_scm2double (horizon_padding_scm, 0.0);

@@ -652,6 +656,8 @@ add_grobs_of_one_priority (Skyline_pair *const skylines,
                {
                  b.translate (Offset (0, dir*dist));
                  elements[i]->translate_axis (dir*dist, Y_AXIS);
+                 for (vsize j = 0; j < riders.size (); j++)
+                   riders[j]->translate_axis (dir*dist, Y_AXIS);
                }
              skylines->insert (b, 0, X_AXIS);
              elements[i]->set_property ("outside-staff-priority", SCM_BOOL_F);
Index: lily/grob.cc
diff --git a/lily/grob.cc b/lily/grob.cc
index c613effccc65fd6be001aad742e41a1ed29b15a4..f28b1e19c9df1e1154f7df48e2f73d7338753175 100644
--- a/lily/grob.cc
+++ b/lily/grob.cc
@@ -688,6 +688,7 @@ ADD_INTERFACE (Grob,
               "outside-staff-horizontal-padding "
               "outside-staff-padding "
               "outside-staff-priority "
+              "outside-staff-riders "
               "pure-Y-offset-in-progress "
               "rotation "
               "springs-and-rods "
Index: lily/tuplet-engraver.cc
diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc
index 39c120dd751be00ac4b640a45ae960c165d1ff66..c3d0f46d08fd75fd40a5190e575832667917ff4e 100644
--- a/lily/tuplet-engraver.cc
+++ b/lily/tuplet-engraver.cc
@@ -21,6 +21,7 @@
 #include "engraver.hh"
 #include "international.hh"
 #include "note-column.hh"
+#include "pointer-group-interface.hh"
 #include "spanner.hh"
 #include "stream-event.hh"
 #include "tuplet-bracket.hh"
@@ -183,6 +184,7 @@ Tuplet_engraver::process_music ()
                                          tuplets_[i].event_->self_scm ());
tuplets_[i].number_->set_object ("bracket", tuplets_[i].bracket_->self_scm ()); tuplets_[i].bracket_->set_object ("tuplet-number", tuplets_[i].number_->self_scm ()); + Pointer_group_interface::add_grob (tuplets_[i].bracket_, ly_symbol2scm ("outside-staff-riders"), tuplets_[i].number_);
       tuplets_[i].stop_moment_.grace_part_ = 0;







reply via email to

[Prev in Thread] Current Thread [Next in Thread]