]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/mensural-ligature.cc
Merge branch 'master' of git+ssh://git.savannah.gnu.org/srv/git/lilypond
[lilypond.git] / lily / mensural-ligature.cc
index 36e5ef2026a868c895dc7ac3fc79a5887082f512..09e89e3a5ef1977b90f70fdcf99595894474fd69 100644 (file)
@@ -1,20 +1,32 @@
 /*
-  mensural-ligature.cc -- implement Mensural_ligature
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
-
-  (c) 2002--2006 Juergen Reuter <reuter@ipd.uka.de>,
+  Copyright (C) 2002--2010 Juergen Reuter <reuter@ipd.uka.de>,
   Pal Benko <benkop@freestart.hu>
-*/
 
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
 
 #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"
 
 /*
@@ -95,7 +107,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);
 
@@ -109,7 +121,7 @@ internal_brew_primitive (Grob *me)
 
   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);
@@ -120,30 +132,30 @@ internal_brew_primitive (Grob *me)
   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");
+       ("noteheads.sM2mensural");
       break;
     case MLP_BREVIS: // mensural brevis head
       out = Font_interface::get_default_font (me)->find_by_name
-       ("noteheads.s-1mensural");
+       ("noteheads.sM1mensural");
       break;
     case MLP_MAXIMA: // should be mensural maxima head without stem
       out = Font_interface::get_default_font (me)->find_by_name
-       ("noteheads.s-1neomensural");
+       ("noteheads.sM1neomensural");
       break;
     case MLP_FLEXA:
       out = brew_flexa (me, delta_pitch, false, width, thickness);
       break;
     default:
-      programming_error (_f ("Mensural_ligature: "
-                            "unexpected case fall-through"));
-      return Stencil ();
+      programming_error (_ ("Mensural_ligature: "
+                           "unexpected case fall-through"));
+      return Lookup::blank (Box (Interval (0, 0), Interval (0, 0)));
     }
 
   Real blotdiameter
-    = (me->layout ()->get_dimension (ly_symbol2scm ("blotdiameter")));
+    = (me->layout ()->get_dimension (ly_symbol2scm ("blot-diameter")));
 
   if (primitive & MLP_STEM)
     {
@@ -166,7 +178,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)
@@ -188,7 +200,7 @@ internal_brew_primitive (Grob *me)
          out.add_stencil (join);
        }
       else
-       programming_error (_f ("Mensural_ligature: (join_right == 0)"));
+       programming_error (_ ("Mensural_ligature: (join_right == 0)"));
     }
 
 #if 0 /* what happend with the ledger lines? */
@@ -218,7 +230,15 @@ Mensural_ligature::print (SCM)
   return SCM_EOL;
 }
 
-ADD_INTERFACE (Mensural_ligature, "mensural-ligature-interface",
-              "A mensural ligature",
-              "delta-pitch flexa-width head-width join-right-amount " // "add-join "
-              "primitive thickness");
+ADD_INTERFACE (Mensural_ligature,
+              "A mensural ligature.",
+
+              /* properties */
+              "delta-position "
+              "flexa-width "
+              "head-width "
+              "join-right-amount "
+              "primitive "
+              "thickness "
+              );
+