[Top][All Lists]
[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;
- Allows for rider grobs in outside-staff-priority. (issue4639075),
mtsolo <=