]> git.donarmstrong.com Git - lilypond.git/commitdiff
* lily/volta-bracket.cc (modify_edge_height): change from
authorhanwen <hanwen>
Wed, 1 Mar 2006 20:08:35 +0000 (20:08 +0000)
committerhanwen <hanwen>
Wed, 1 Mar 2006 20:08:35 +0000 (20:08 +0000)
after_line_breaking_callback. Suicide last bracket if appropriate.

* scripts/midi2ly.py: optparse, strip lilylib copy.

ChangeLog
VERSION
lily/include/volta-bracket.hh
lily/volta-bracket.cc
scm/define-grobs.scm

index e3defa773f05c06bbc8ac0186733273f10457a18..66afb60fcaa7db587d6eb400f9cb7fd1973db4d6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2006-03-01  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * lily/volta-bracket.cc (modify_edge_height): change from
+       after_line_breaking_callback. Suicide last bracket if appropriate.
        * python/lilylib.py: strip getopt support
 
        * scripts/etf2ly.py (do_options): use optparse
diff --git a/VERSION b/VERSION
index a01de27d6646400c1c840e88dc90aaa80876b5fc..8c2457bbf0af613104735333e279fb2d9a426e84 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
 MINOR_VERSION=7
-PATCH_LEVEL=36
+PATCH_LEVEL=37
 MY_PATCH_LEVEL=
 
index 156a8c5a6ef86fc53a747e8a43abbc1d379287b7..f9999b92f61234abab64aecb1e9f8e6caadef748 100644 (file)
@@ -14,7 +14,7 @@ class Volta_bracket_interface
 public:
   static bool has_interface (Grob *);
   DECLARE_SCHEME_CALLBACK (print, (SCM));
-  DECLARE_SCHEME_CALLBACK (after_line_breaking, (SCM));
+  static void modify_edge_height (Spanner *);
   static void add_column (Grob *, Grob *col);
   static void add_bar (Grob *me, Item *bar);
 };
index 03137d1b12cc6f09af2fcb05ceb51cfd8266e710..d601e476e6b711286a536795c09f631afcfc2d11 100644 (file)
@@ -63,6 +63,10 @@ Volta_bracket_interface::print (SCM smob)
       */
     }
 
+  modify_edge_height (me);
+  if (!me->is_live ())
+    return SCM_EOL;
+  
   Drul_array<Real> edge_height = robust_scm2interval (me->get_property ("edge-height"),
                                                      Interval (1.0, 1.0));
   Drul_array<Real> flare = robust_scm2interval (me->get_property ("bracket-flare"),
@@ -101,17 +105,13 @@ Volta_bracket_interface::print (SCM smob)
 }
 
 
-MAKE_SCHEME_CALLBACK(Volta_bracket_interface,after_line_breaking, 1);
-SCM
-Volta_bracket_interface::after_line_breaking (SCM smob)
+void
+Volta_bracket_interface::modify_edge_height (Spanner *me)
 {
-  Spanner *me = unsmob_spanner (smob);
   Spanner *orig_span = dynamic_cast<Spanner *> (me->original ());
  
   bool broken_first_bracket = orig_span && (orig_span->broken_intos_[0] == (Spanner *)me);
-
   bool broken_last_bracket = orig_span && (orig_span->broken_intos_.back () == (Spanner *)me);
-
   bool no_vertical_start = orig_span && !broken_first_bracket;
   bool no_vertical_end = orig_span && !broken_last_bracket;
 
@@ -144,8 +144,10 @@ Volta_bracket_interface::after_line_breaking (SCM smob)
 
       me->set_property ("edge-height", ly_interval2scm (edge_height));
     }
-  
-  return SCM_UNSPECIFIED;
+
+  if (broken_last_bracket && no_vertical_end && no_vertical_start
+      && !broken_first_bracket)
+    me->suicide ();
 }
 
 void
index 077e06982eab997c1df0a0d0119158f139172592..9a4f2c86ca81e01925495dd1586d04b44e007ed4 100644 (file)
     (VoltaBracket
      . (
        (stencil . ,ly:volta-bracket-interface::print)
-       (after-line-breaking . ,ly:volta-bracket-interface::after-line-breaking)
        (direction . ,UP)
        (padding . 1)
        (font-encoding . fetaNumber)