]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/mensural-ligature.cc
Merge with master
[lilypond.git] / lily / mensural-ligature.cc
index f7396f582d1843c4075e855ce713314ea01fa636..12b5218429e2ed1ce70c6a9a784fd36aae7dbf91 100644 (file)
@@ -3,19 +3,19 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2002--2005 Juergen Reuter <reuter@ipd.uka.de>,
+  (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>,
   Pal Benko <benkop@freestart.hu>
 */
 
-#include <math.h>
-
 #include "mensural-ligature.hh"
-#include "item.hh"
+
 #include "font-interface.hh"
+#include "international.hh"
+#include "item.hh"
 #include "lookup.hh"
-#include "staff-symbol-referencer.hh"
 #include "note-head.hh"
 #include "output-def.hh"
+#include "staff-symbol-referencer.hh"
 #include "warn.hh"
 
 /*
@@ -96,7 +96,7 @@ internal_brew_primitive (Grob *me)
     {
       programming_error ("Mensural_ligature: "
                         "undefined primitive -> ignoring grob");
-      return Stencil ();
+      return Lookup::blank (Box (Interval (0, 0), Interval (0, 0)));
     }
   int primitive = scm_to_int (primitive_scm);
 
@@ -106,26 +106,22 @@ internal_brew_primitive (Grob *me)
   Real width = 0.0;
   Real staff_space = Staff_symbol_referencer::staff_space (me);
   if (primitive & MLP_ANY)
-    {
-      thickness = robust_scm2double (me->get_property ("thickness"), .14);
-    }
+    thickness = robust_scm2double (me->get_property ("thickness"), .14);
 
   if (primitive & MLP_FLEXA)
     {
-      delta_pitch = robust_scm2int (me->get_property ("delta-pitch"),
+      delta_pitch = robust_scm2int (me->get_property ("delta-position"),
                                    0);
       width
        = robust_scm2double (me->get_property ("flexa-width"), 2.0 * staff_space);
     }
   if (primitive & MLP_SINGLE_HEAD)
-    {
-      width = robust_scm2double (me->get_property ("head-width"), staff_space);
-    }
+    width = robust_scm2double (me->get_property ("head-width"), staff_space);
 
   switch (primitive & MLP_ANY)
     {
     case MLP_NONE:
-      return Stencil ();
+      return Lookup::blank (Box (Interval (0, 0), Interval (0, 0)));
     case MLP_LONGA: // mensural brevis head with right cauda
       out = Font_interface::get_default_font (me)->find_by_name
        ("noteheads.s-2mensural");
@@ -144,11 +140,11 @@ internal_brew_primitive (Grob *me)
     default:
       programming_error (_f ("Mensural_ligature: "
                             "unexpected case fall-through"));
-      return Stencil ();
+      return Lookup::blank (Box (Interval (0, 0), Interval (0, 0)));
     }
 
   Real blotdiameter
-    = (me->get_layout ()->get_dimension (ly_symbol2scm ("blotdiameter")));
+    = (me->layout ()->get_dimension (ly_symbol2scm ("blot-diameter")));
 
   if (primitive & MLP_STEM)
     {
@@ -171,7 +167,7 @@ internal_brew_primitive (Grob *me)
 
   SCM join_right_scm = me->get_property ("join-right-amount");
 
-  if (join_right_scm != SCM_EOL)
+  if (scm_is_number (join_right_scm))
     {
       int join_right = scm_to_int (join_right_scm);
       if (join_right)
@@ -193,9 +189,7 @@ internal_brew_primitive (Grob *me)
          out.add_stencil (join);
        }
       else
-       {
-         programming_error (_f ("Mensural_ligature: (join_right == 0)"));
-       }
+       programming_error (_f ("Mensural_ligature: (join_right == 0)"));
     }
 
 #if 0 /* what happend with the ledger lines? */
@@ -225,7 +219,14 @@ Mensural_ligature::print (SCM)
   return SCM_EOL;
 }
 
-ADD_INTERFACE (Mensural_ligature, "mensural-ligature-interface",
+ADD_INTERFACE (Mensural_ligature,
               "A mensural ligature",
-              "delta-pitch flexa-width head-width join-right-amount " // "add-join "
-              "ligature-primitive-callback primitive thickness");
+
+              "delta-position "
+              "flexa-width "
+              "head-width "
+              "join-right-amount "
+              "primitive "
+              "thickness"
+              );
+