]> git.donarmstrong.com Git - lilypond.git/commitdiff
Handle hara-kiri piano staves correctly in the new vertical alignment
authorJoe Neeman <joeneeman@gmail.com>
Wed, 31 Jan 2007 10:54:51 +0000 (12:54 +0200)
committerJoe Neeman <joeneeman@gmail.com>
Wed, 31 Jan 2007 10:54:51 +0000 (12:54 +0200)
stuff.

lily/align-interface.cc
lily/hara-kiri-group-spanner.cc
lily/include/hara-kiri-group-spanner.hh
lily/text-interface.cc
scm/define-grobs.scm

index 68077c817622aa69c77bcda35d434bb808a5a12d..4854383d9e105a2865b4bbf98fab80628ad718ae 100644 (file)
@@ -208,13 +208,17 @@ Align_interface::get_extents_aligned_translates (Grob *me,
 
   Real padding = robust_scm2double (me->get_property ("padding"), 0.0);
   vector<Real> translates;
+  Skyline down_skyline (stacking_dir);
   for (vsize j = 0; j < elems.size (); j++)
     {
       Real dy = 0;
       if (j == 0)
        dy = skylines[j][-stacking_dir].max_height ();
       else
-       dy = skylines[j-1][stacking_dir].distance (skylines[j][-stacking_dir]);
+       {
+         down_skyline.merge (skylines[j-1][stacking_dir]);
+         dy = down_skyline.distance (skylines[j][-stacking_dir]);
+       }
 
       where += stacking_dir * max (0.0, dy + padding + extra_space / elems.size ());
       translates.push_back (where);
index 81e2c7d9713f067377b7fe1a56379d6da5aa0c64..73fe4d6775dc9b9fe16291e3cd0232f9e1f04825 100644 (file)
@@ -24,6 +24,15 @@ Hara_kiri_group_spanner::y_extent (SCM smob)
   return Axis_group_interface::generic_group_extent (me, Y_AXIS);
 }
 
+MAKE_SCHEME_CALLBACK (Hara_kiri_group_spanner, calc_skylines, 1);
+SCM
+Hara_kiri_group_spanner::calc_skylines (SCM smob)
+{
+  Grob *me = unsmob_grob (smob);
+  consider_suicide (me);
+  return Axis_group_interface::calc_skylines (smob);
+}
+
 MAKE_SCHEME_CALLBACK (Hara_kiri_group_spanner, pure_height, 3);
 SCM
 Hara_kiri_group_spanner::pure_height (SCM smob, SCM start_scm, SCM end_scm)
index 6505287a4d634b13b611a3aface80e7d0a08909a..7a5ddd6a7c66a0ae0dae335aeb362285e8fd5993 100644 (file)
@@ -17,6 +17,7 @@ class Hara_kiri_group_spanner
 public:
   DECLARE_SCHEME_CALLBACK (force_hara_kiri_callback, (SCM));
   DECLARE_SCHEME_CALLBACK (y_extent, (SCM smob));
+  DECLARE_SCHEME_CALLBACK (calc_skylines, (SCM smob));
   DECLARE_SCHEME_CALLBACK (pure_height, (SCM smob, SCM start, SCM end));
   DECLARE_SCHEME_CALLBACK (force_hara_kiri_in_y_parent_callback, (SCM));
   DECLARE_SCHEME_CALLBACK (after_line_breaking, (SCM));
index 86a1381bb411312e28b337640fe814e5a1dfcbb6..55e7bb7ec4c09a81ed73185271ef0c00a3ab3ef3 100644 (file)
@@ -26,7 +26,7 @@ Text_interface::interpret_string (SCM layout_smob,
                                  SCM markup)
 {
   LY_ASSERT_SMOB (Output_def, layout_smob, 1);
-  LY_ASSERT_TYPE (scm_is_string, props, 3);
+  LY_ASSERT_TYPE (scm_is_string, markup, 3);
 
   string str = ly_scm2string (markup);
   Output_def *layout = unsmob_output_def (layout_smob);
index eefc76fe1343181c821de59f2792f3e4dc52b0c1..6cfc4ed18845310cf8dba7dd0d1c62920fcacef9 100644 (file)
        (Y-offset . ,ly:hara-kiri-group-spanner::force-hara-kiri-callback)
        (Y-extent . ,ly:hara-kiri-group-spanner::y-extent)
        (X-extent . ,ly:axis-group-interface::width)
-       (skylines . ,ly:axis-group-interface::calc-skylines)
+       (skylines . ,ly:hara-kiri-group-spanner::calc-skylines)
        (max-stretch . ,ly:axis-group-interface::calc-max-stretch)
        (meta . ((class . Spanner)
                 (object-callbacks . ((X-common . ,ly:axis-group-interface::calc-x-common)))