]> git.donarmstrong.com Git - lilypond.git/commitdiff
* scm/define-grobs.scm (all-grob-descriptions): remove
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 21 Oct 2005 17:02:51 +0000 (17:02 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 21 Oct 2005 17:02:51 +0000 (17:02 +0000)
RemoveEmptyVerticalGroup

* lily/hara-kiri-engraver.cc (get_spanner): create VerticalAxisGroup.

* python/convertrules.py (conv): add rules.

* scm/define-grob-properties.scm (all-user-grob-properties):
remove callback property.

* scm/define-grob-properties.scm (all-internal-grob-properties):
remove ligature-primitive-callback

ChangeLog
input/regression/apply-output.ly
input/regression/stencil-hacking.ly
input/wilhelmus.ly
lily/beam.cc
lily/hara-kiri-engraver.cc
lily/hara-kiri-group-spanner.cc
ly/engraver-init.ly
python/convertrules.py
scm/define-grob-properties.scm
scm/define-grobs.scm

index f7962d78f2732c8b486a4be6e0bac81dff29ff37..87059675f30b166bf74f0c6d369599ee7ac348d3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2005-10-21  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * scm/define-grobs.scm (all-grob-descriptions): remove
+       RemoveEmptyVerticalGroup
+
+       * lily/hara-kiri-engraver.cc (get_spanner): create VerticalAxisGroup.
+
        * lily/include/lily-guile.hh (GUILE_ELLIPSIS): define to get clean
        compile on MOSX
 
index 59025e104490cc75a27dcb28a53c9dcf2e68fc45..1b2791c8193dfa52ad54e74ed9bcce97d5d4ef14 100644 (file)
@@ -21,7 +21,7 @@ position.
    (if (and (memq 'note-head-interface ifs)
        (memq sp '(-2 -3 -5)))
     (begin
-     (ly:grob-set-callback! gr 'stencil Text_interface::print)
+     (ly:grob-set-property! gr 'stencil Text_interface::print)
      (ly:grob-set-property! gr 'font-family 'roman)
      (ly:grob-set-property!
       gr 'text
index 9cdf19d0df1b41f99297e838cc230d06fc38c3ff..525b8444991a3de962678d29cf577d17b15f82c8 100644 (file)
@@ -57,7 +57,7 @@ GROB.  The dimensions of the stencil is not affected.
     =
     #(parenthesize-callback Note_head::print)
     g bes
-    \revert NoteHead  % stencil
+    \revert NoteHead #'stencil
 
     \override Beam  #'stencil
     =
index aee4e0384437e2d309a176ca57ed82c8b7314b8e..78b3bb6d7609f4d176692c0dde0d25e3c5a13a75 100644 (file)
@@ -96,8 +96,7 @@ voice =  \relative c' {
 stich =  \relative c'' {
   \override Staff.NoteCollision #'merge-differently-dotted = ##t
   \set fontSize = #-3
-  %% broken?
-  \override Stem #'beamed-lengths = #(map (lambda (x) (* 0.2 x)) '(3.26))
+  \override Stem #'length-fraction = #(magstep -3)
 
   \voiceTwo
   \partial 4
index 6285c72a977cc73dfd63ace5890cffcd43633593..32d6a08be556e1a0e7064073cd97119aa5d7f599 100644 (file)
@@ -118,6 +118,8 @@ Beam::calc_direction (SCM smob)
      For a beam that  only has one stem, we try to do some disappearance magic:
      we revert the flag, and move on to The Eternal Engraving Fields. */
 
+  Direction d = CENTER;
+
   int count = visible_stem_count (me);
   if (count < 2)
     {
@@ -136,21 +138,32 @@ Beam::calc_direction (SCM smob)
          me->suicide ();
          return SCM_UNSPECIFIED;
        }
+      else
+       {
+         /*
+           ugh.
+
+           can happen in stem-tremolo case.
+           TODO: fixme.
+          */
+         d = Stem::get_default_dir (stems[0]);
+       }
     }
 
-  Direction d = CENTER;
   
   if (count >= 1)
     {
       d = get_default_dir (me);
       consider_auto_knees (me);
-      set_stem_directions (me, d);
+    }
 
+  if (d)
+    {
+      set_stem_directions (me, d);
       connect_beams (me);
-
       set_stem_shorten (me);
     }
-
+  
   return scm_from_int (d);
 }
 
index 30eda507cdeb5b3f2dc1db70596d3306f7ffff13..a704fa91f8c22c8ee520a66bd3bdedbb4bd260f4 100644 (file)
 
 #include "translator.icc"
 
+/*
+  TODO: fold together with axis_group_engraver? 
+ */
+
 class Hara_kiri_engraver : public Axis_group_engraver
 {
 protected:
@@ -48,8 +52,7 @@ Hara_kiri_engraver::add_element (Grob *e)
 Spanner *
 Hara_kiri_engraver::get_spanner ()
 {
-  Spanner *sp = make_spanner ("RemoveEmptyVerticalGroup", SCM_EOL);
-
+  Spanner *sp = make_spanner ("VerticalAxisGroup", SCM_EOL);
   return sp;
 }
 
@@ -76,7 +79,7 @@ ADD_ACKNOWLEDGER (Hara_kiri_engraver, grob);
 ADD_TRANSLATOR (Hara_kiri_engraver,
                /* doc */ "Like Axis_group_engraver, but make a hara-kiri spanner, and add "
                "interesting items (ie. note heads, lyric syllables and normal rests) ",
-               /* create */ "RemoveEmptyVerticalGroup",
+               /* create */ "VerticalAxisGroup",
                /* accept */ "",
                /* read */ "keepAliveInterfaces",
                /* write */ "");
index 8d7eb003e56bc63e6a618a1e0a9d26675447b463..1fc7edc6dd85eac68525868d07dd157d3bd70f47 100644 (file)
@@ -29,6 +29,8 @@ void
 Hara_kiri_group_spanner::consider_suicide (Grob *me)
 {
   Spanner *sp = dynamic_cast<Spanner *> (me);
+  if (!to_boolean (me->get_property ("remove-empty")))
+    return ;
 
   extract_grob_set (me, "items-worth-living", worth);
   if (worth.size ())
@@ -58,9 +60,9 @@ Hara_kiri_group_spanner::consider_suicide (Grob *me)
   before asking for offsets.  */
 MAKE_SCHEME_CALLBACK (Hara_kiri_group_spanner, force_hara_kiri_callback, 2);
 SCM
-Hara_kiri_group_spanner::force_hara_kiri_callback (SCM element_smob, SCM axis)
+Hara_kiri_group_spanner::force_hara_kiri_callback (SCM smob, SCM axis)
 {
-  Grob *me = unsmob_grob (element_smob);
+  Grob *me = unsmob_grob (smob);
   (void) axis;
 
   assert (scm_to_int (axis) == Y_AXIS);
@@ -100,5 +102,8 @@ ADD_INTERFACE (Hara_kiri_group_spanner, "hara-kiri-group-interface",
 
               /* properties */
               "items-worth-living "
-              "remove-first");
+              "remove-empty "
+              "remove-first "
+              );
+
 
index 44bdc1ee51a20a758bda17680c3268e2856e3d8c..5550b278ff82a2954e3100a53d17ccf543325910 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.7.6"
+\version "2.7.14"
 
 \context {
   \name Global
@@ -39,7 +39,7 @@
   \consists "String_number_engraver"
   \consists "Axis_group_engraver"
 
-  minimumVerticalExtent = #'(-4 . 4)
+  \override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4)
   extraVerticalExtent = ##f
   verticalExtent = ##f 
   localKeySignature = #'()
@@ -116,7 +116,7 @@ contained staves are not connected vertically."
 \context{
   \type "Engraver_group"
   
-  minimumVerticalExtent = ##f
+  \override VerticalAxisGroup #'minimum-Y-extent = ##f
   extraVerticalExtent = ##f
   verticalExtent = ##f 
   localKeySignature = #'()
@@ -330,7 +330,7 @@ connected vertically.  "
 
 \context{
   \type "Engraver_group"
-  minimumVerticalExtent = #'(-1.2 . 2.4)
+  \override VerticalAxisGroup #'minimum-Y-extent = #'(-1.2 . 2.4)
   extraVerticalExtent = ##f
   verticalExtent = ##f
 
@@ -348,6 +348,7 @@ printing of a single line of lyrics.  "
   \consists "Font_size_engraver"
   \consists "Hara_kiri_engraver"
   \override RemoveEmptyVerticalGroup #'remove-first = ##t
+  \override RemoveEmptyVerticalGroup #'remove-empty = ##t
   \override SeparationItem #'padding = #0.2
 }
 
@@ -356,7 +357,7 @@ printing of a single line of lyrics.  "
   \name NoteNames
   \consists "Axis_group_engraver"
 
-  minimumVerticalExtent = ##f
+  \override VerticalAxisGroup #'minimum-Y-extent = ##f
   extraVerticalExtent = ##f
   verticalExtent = ##f 
 
@@ -383,7 +384,7 @@ printing of a single line of lyrics.  "
   \consists "Hara_kiri_engraver"
   
   voltaOnThisStaff = ##f
-  minimumVerticalExtent = #'(0 . 2.5)
+  \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2.5)
   extraVerticalExtent = ##f
   \override SeparatingGroupSpanner #'padding = #0.8
   \override RemoveEmptyVerticalGroup #'remove-first = ##t
@@ -585,7 +586,7 @@ AncientRemoveEmptyStaffContext = \context {
   \consists "Separating_line_group_engraver"
   \consists "Hara_kiri_engraver"
   \override RemoveEmptyVerticalGroup #'remove-first = ##t
-  minimumVerticalExtent = #'(-0.5 . 2.5)
+  \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.5 . 2.5)
 }
 
 \context {
index 9ab036371ef0b4aec10df7e901115303b81a43ac..4d5fdf06e5655f44547fef26c10106404c0af2a8 100644 (file)
@@ -2624,6 +2624,14 @@ def conv (str):
        str = re.sub (r"\\revert ([A-Z.a-z]+) #'callbacks % ([a-zA-Z]+)",
                      r"\\revert \1 #'\2", str)
        str = re.sub (r"([XY]-extent)-callback", r'\1', str)
+       str = re.sub (r"RemoveEmptyVerticalGroup", "VerticalAxisGroup", str)
+       str = re.sub (r"\\set ([a-zA-Z]+\.)?minimumVerticalExtent",
+                     r"\\override \1VerticalAxisGroup #'minimum-Y-extent",
+                     str)
+       str = re.sub (r"minimumVerticalExtent",
+                     r"\\override VerticalAxisGroup #'minimum-Y-extent",
+                     str)
+       
        return str
 
 conversions.append (((2, 7, 14), conv,
index 7e9519b2754ee7d2d99571314a0caf701e24a2c6..aa88de25b105eb65ff8c51d44266db8747386979 100644 (file)
@@ -337,6 +337,9 @@ as a real penalty.")
 staff-space unit of the current staff.")
      (ratio ,number? "Parameter for slur shape. The higher this number, the
 quicker the slur attains it @code{height-limit}.")
+     
+     (remove-empty ,boolean? "If set, remove group if it contains no
+@code{interesting-items}")
      (remove-first ,boolean? "Remove the first staff of a orchestral score?")
      (right-padding ,ly:dimension? "Space to insert between note and
 accidentals.")
index 4dedcc156e46a06d811b987a0cf3ff836b58fc60..9284ff078a2e6a25595ee53d51e95c2a8d2e42b8 100644 (file)
                                mark-interface
                                self-alignment-interface))))))
 
-    (RemoveEmptyVerticalGroup
-     . (
-       (Y-offset-callbacks . (,Hara_kiri_group_spanner::force_hara_kiri_callback))
-
-       (Y-extent . ,Hara_kiri_group_spanner::y_extent)
-
-       (axes . (1))
-       (meta . ((class . Spanner)
-                (interfaces . (axis-group-interface
-                               vertically-spaceable-interface
-                               hara-kiri-group-interface
-                               spanner-interface))))))
 
     (RepeatSlash
      . (
     (VerticalAxisGroup
      . (
        (axes . (1))
-       (Y-extent . ,Axis_group_interface::height)
+       (Y-offset-callbacks . (,Hara_kiri_group_spanner::force_hara_kiri_callback))
+
+       (Y-extent . ,Hara_kiri_group_spanner::y_extent)
        (X-extent . ,Axis_group_interface::width)
        (meta . ((class . Spanner)
                 (interfaces . (axis-group-interface