CVSROOT:        /cvsroot/lilypond
Module name:    lilypond
Branch:         
Changes by:     Han-Wen Nienhuys <[EMAIL PROTECTED]>    05/08/24 15:54:57

Modified files:
        .              : ChangeLog THANKS 
        Documentation/topdocs: NEWS.tely 
        input/regression: multi-measure-rest-text.ly 
        lily           : bezier.cc multi-measure-rest.cc 
        lily/include   : multi-measure-rest.hh 
        scm            : define-grobs.scm framework-ps.scm 

Log message:
        (set_text_rods): new function.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.4074&tr2=1.4075&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/THANKS.diff?tr1=1.144&tr2=1.145&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/topdocs/NEWS.tely.diff?tr1=1.78&tr2=1.79&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/input/regression/multi-measure-rest-text.ly.diff?tr1=1.27&tr2=1.28&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/bezier.cc.diff?tr1=1.64&tr2=1.65&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/multi-measure-rest.cc.diff?tr1=1.126&tr2=1.127&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/multi-measure-rest.hh.diff?tr1=1.43&tr2=1.44&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-grobs.scm.diff?tr1=1.231&tr2=1.232&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/framework-ps.scm.diff?tr1=1.133&tr2=1.134&r1=text&r2=text

Patches:
Index: lilypond/ChangeLog
diff -u lilypond/ChangeLog:1.4074 lilypond/ChangeLog:1.4075
--- lilypond/ChangeLog:1.4074   Wed Aug 24 12:49:53 2005
+++ lilypond/ChangeLog  Wed Aug 24 15:54:55 2005
@@ -1,5 +1,11 @@
 2005-08-24  Han-Wen Nienhuys  <[EMAIL PROTECTED]>
 
+       * lily/multi-measure-rest.cc (set_text_rods): new function.
+
+       * lily/vertical-align-engraver.cc (process_music): call
+       Align_interface::set_axis(). This forces #'elements to be ordered,
+       preventing random vertical reordering  of staves.
+
        * scm/define-grob-interfaces.scm (dynamic-line-spanner-interface):
        add avoid-slur property. 
 
Index: lilypond/Documentation/topdocs/NEWS.tely
diff -u lilypond/Documentation/topdocs/NEWS.tely:1.78 
lilypond/Documentation/topdocs/NEWS.tely:1.79
--- lilypond/Documentation/topdocs/NEWS.tely:1.78       Wed Aug 24 14:30:55 2005
+++ lilypond/Documentation/topdocs/NEWS.tely    Wed Aug 24 15:54:56 2005
@@ -23,7 +23,7 @@
 
 @macro textanchor{NAME}
 @html
-<a name href="\NAME\"></a>
+<a name="\NAME\"></a>
 @end html
 @end macro
 
@@ -42,7 +42,21 @@
 @end ifhtml
 
 
+
+
 @itemize @bullet
+
+
[EMAIL PROTECTED]
+Texts over multi measure rests now stretch corresponding measure.
+
[EMAIL PROTECTED],fragment,raggedright]
+c1 R1 R1^"Very long long long text" 
[EMAIL PROTECTED] lilypond
+
+This feature was sponsored by Kris Shaffer.
+
+
 @item @textanchor{tie-chords}
 Formatting of ties in chords has been improved. Ties no longer collide
 with note heads and stems. In addition, it is possible to manually
Index: lilypond/THANKS
diff -u lilypond/THANKS:1.144 lilypond/THANKS:1.145
--- lilypond/THANKS:1.144       Wed Aug 24 12:22:51 2005
+++ lilypond/THANKS     Wed Aug 24 15:54:56 2005
@@ -25,6 +25,7 @@
 Jamie Bullock
 D. Josiah Boothby
 Kieren MacMillan
+Kris Shaffer
 Nancho Alvarez
 Steve Doonan
 Sven Axelsson
Index: lilypond/input/regression/multi-measure-rest-text.ly
diff -u lilypond/input/regression/multi-measure-rest-text.ly:1.27 
lilypond/input/regression/multi-measure-rest-text.ly:1.28
--- lilypond/input/regression/multi-measure-rest-text.ly:1.27   Thu Aug 18 
13:43:05 2005
+++ lilypond/input/regression/multi-measure-rest-text.ly        Wed Aug 24 
15:54:56 2005
@@ -10,6 +10,7 @@
 
 }
 
+\layout { raggedright = ##t }
 {
   \time 3/4
   \set Score.skipBars = ##t
@@ -18,5 +19,6 @@
   R2.^"4"
   R2.*3_\markup { \roman "a1b2c3" }
   R2.*10^"inner"^"top"_"inner"_"bot"
+  R2.^"very very very very very very long text"
   c'2.
 }
Index: lilypond/lily/bezier.cc
diff -u lilypond/lily/bezier.cc:1.64 lilypond/lily/bezier.cc:1.65
--- lilypond/lily/bezier.cc:1.64        Sat Aug 13 21:35:23 2005
+++ lilypond/lily/bezier.cc     Wed Aug 24 15:54:56 2005
@@ -12,7 +12,9 @@
 #include "warn.hh"
 #include "libc-extension.hh"
 
-Real binomial_coefficient_3[] = {1, 3, 3, 1};
+Real binomial_coefficient_3[] = {
+  1, 3, 3, 1
+};
 
 Real
 binomial_coefficient (Real over, int under)
Index: lilypond/lily/include/multi-measure-rest.hh
diff -u lilypond/lily/include/multi-measure-rest.hh:1.43 
lilypond/lily/include/multi-measure-rest.hh:1.44
--- lilypond/lily/include/multi-measure-rest.hh:1.43    Thu Mar 10 14:36:12 2005
+++ lilypond/lily/include/multi-measure-rest.hh Wed Aug 24 15:54:56 2005
@@ -20,6 +20,7 @@
   DECLARE_SCHEME_CALLBACK (percent, (SCM));
   static void add_column (Grob *, Item *);
   DECLARE_SCHEME_CALLBACK (set_spacing_rods, (SCM));
+  DECLARE_SCHEME_CALLBACK (set_text_rods, (SCM));
   DECLARE_SCHEME_CALLBACK (centered_stencil, (SCM));
 
   static Stencil big_rest (Grob *, Real);
Index: lilypond/lily/multi-measure-rest.cc
diff -u lilypond/lily/multi-measure-rest.cc:1.126 
lilypond/lily/multi-measure-rest.cc:1.127
--- lilypond/lily/multi-measure-rest.cc:1.126   Sat Aug 13 21:35:22 2005
+++ lilypond/lily/multi-measure-rest.cc Wed Aug 24 15:54:56 2005
@@ -328,7 +328,66 @@
   return SCM_UNSPECIFIED;
 }
 
+/*
+  Ugh. Cut & paste.
+ */
+MAKE_SCHEME_CALLBACK (Multi_measure_rest, set_text_rods, 1);
+SCM
+Multi_measure_rest::set_text_rods (SCM smob)
+{
+  Grob *me = unsmob_grob (smob);
+
+  Spanner *sp = dynamic_cast<Spanner *> (me);
+  if (! (sp->get_bound (LEFT) && sp->get_bound (RIGHT)))
+    {
+      programming_error ("Multi_measure_rest::get_rods (): I am not spanned!");
+      return SCM_UNSPECIFIED;
+    }
+
+  Item *li = sp->get_bound (LEFT)->get_column ();
+  Item *ri = sp->get_bound (RIGHT)->get_column ();
+  Item *lb = li->find_prebroken_piece (RIGHT);
+  Item *rb = ri->find_prebroken_piece (LEFT);
+
+  Item *combinations[4][2] = {{li, ri},
+                             {lb, ri},
+                             {li, rb},
+                             {lb, rb}};
+
+  SCM st = me->get_uncached_stencil ();
+  Real len = unsmob_stencil (st)
+    ? unsmob_stencil (st)->extent (X_AXIS).length ()
+    : 0.0;
+  
+
+  for (int i = 0; i < 4; i++)
+    {
+      Item *li = combinations[i][0];
+      Item *ri = combinations[i][1];
+
+      if (!li || !ri)
+       continue;
+
+      Rod rod;
+      rod.item_drul_[LEFT] = li;
+      rod.item_drul_[RIGHT] = ri;
+
+      rod.distance_ = len; 
+
+      Real minlen = robust_scm2double (me->get_property ("minimum-length"), 0);
+      rod.distance_ = max (rod.distance_, minlen);
+      rod.add_to_cols ();
+    }
+  return SCM_UNSPECIFIED;
+}
+
+
 ADD_INTERFACE (Multi_measure_rest, "multi-measure-rest-interface",
               "A rest that spans a whole number of measures.",
-              "expand-limit measure-count hair-thickness thick-thickness 
use-breve-rest minimum-length");
+              "expand-limit "
+              "measure-count "
+              "hair-thickness "
+              "thick-thickness "
+              "use-breve-rest "
+              "minimum-length");
 
Index: lilypond/scm/define-grobs.scm
diff -u lilypond/scm/define-grobs.scm:1.231 lilypond/scm/define-grobs.scm:1.232
--- lilypond/scm/define-grobs.scm:1.231 Mon Aug 22 00:58:02 2005
+++ lilypond/scm/define-grobs.scm       Wed Aug 24 15:54:57 2005
@@ -833,9 +833,11 @@
                                self-alignment-interface
                                font-interface
                                text-interface))))))
+    
     (MultiMeasureRestText
      . (
        (print-function . ,Text_interface::print)
+       (spacing-procedure . ,Multi_measure_rest::set_text_rods)
        (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self
                               
,Self_alignment_interface::centered_on_other_axis_parent))
        (Y-offset-callbacks . (,Side_position_interface::aligned_side))
Index: lilypond/scm/framework-ps.scm
diff -u lilypond/scm/framework-ps.scm:1.133 lilypond/scm/framework-ps.scm:1.134
--- lilypond/scm/framework-ps.scm:1.133 Sat Aug 20 23:20:19 2005
+++ lilypond/scm/framework-ps.scm       Wed Aug 24 15:54:57 2005
@@ -493,7 +493,6 @@
         (scale (ly:output-def-lookup paper 'outputscale))
         (to-dump-systems '()))
 
-    (display systems)
     ;; skip booktitles.
     (if (and
         (not


_______________________________________________
Lilypond-cvs mailing list
Lilypond-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-cvs

Reply via email to