]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/mensural-ligature.cc
* lily/modified-font-metric.cc (text_dimension): try
[lilypond.git] / lily / mensural-ligature.cc
index c9cab99eb4d3a3838be26cea5ea675fdfb65811b..42d8d304005cba8e63ede018a95a0d80ae371cda 100644 (file)
@@ -6,11 +6,12 @@
   (c) 2002--2004 Juergen Reuter <reuter@ipd.uka.de>
 */
 
+#include "mensural-ligature.hh"
+
 #include <math.h>
+
 #include "item.hh"
-#include "mensural-ligature.hh"
 #include "font-interface.hh"
-#include "stencil.hh"
 #include "lookup.hh"
 #include "staff-symbol-referencer.hh"
 #include "note-head.hh"
@@ -102,30 +103,8 @@ brew_flexa (Grob *me,
   return stencil;
 }
 
-void
-add_ledger_lines (Grob *me, Stencil *out, int pos, Real offs,
-                 bool ledger_take_space)
-{
-  int interspaces = Staff_symbol_referencer::line_count (me)-1;
-  if (abs (pos) - interspaces > 1)
-    {
-      Interval hd = out->extent (X_AXIS);
-      Real left_ledger_protusion = hd.length ()/4;
-      Real right_ledger_protusion = left_ledger_protusion;
-
-      Interval l_extents = Interval (hd[LEFT] - left_ledger_protusion,
-                                    hd[RIGHT] + right_ledger_protusion);
-      Stencil ledger_lines =
-       Note_head::brew_ledger_lines (me, pos, interspaces,
-                                     l_extents,0,
-                                     ledger_take_space);
-      ledger_lines.translate_axis (offs, Y_AXIS);
-      out->add_stencil (ledger_lines);
-    }
-}
-
 Stencil
-internal_brew_primitive (Grob *me, bool ledger_take_space)
+internal_brew_primitive (Grob *me)
 {
   SCM primitive_scm = me->get_property ("primitive");
   if (primitive_scm == SCM_EOL)
@@ -136,7 +115,7 @@ internal_brew_primitive (Grob *me, bool ledger_take_space)
     }
 
   Stencil out;
-  int primitive = ly_scm2int (primitive_scm);
+  int primitive = scm_to_int (primitive_scm);
   int delta_pitch = 0;
   Real thickness = 0.0;
   Real flexa_width = 0.0;
@@ -162,14 +141,14 @@ internal_brew_primitive (Grob *me, bool ledger_take_space)
        out = brew_flexa (me, delta_pitch, false,
                          flexa_width, thickness, true, DOWN);
        break;
-      case MLP_sc:
-       out = Font_interface::get_default_font (me)->find_by_name ("noteheads--2mensural");
+      case MLP_sc: // mensural brevis head with right cauda
+       out = Font_interface::get_default_font (me)->find_by_name ("noteheads.-2mensural");
        break;
-      case MLP_ss:
-       out = Font_interface::get_default_font (me)->find_by_name ("noteheads--1mensural");
+      case MLP_ss: // mensural brevis head
+       out = Font_interface::get_default_font (me)->find_by_name ("noteheads.-1mensural");
        break;
-      case MLP_cs:
-       out = Font_interface::get_default_font (me)->find_by_name ("noteheads-lmensural");
+      case MLP_cs: // mensural brevis head with left cauda
+       out = Font_interface::get_default_font (me)->find_by_name ("noteheads.lmensural");
        break;
       case MLP_SS:
        out = brew_flexa (me, delta_pitch, false,
@@ -188,10 +167,10 @@ internal_brew_primitive (Grob *me, bool ledger_take_space)
   SCM join_left_scm = me->get_property ("join-left-amount");
   if (join_left_scm != SCM_EOL)
     {
-      int join_left = ly_scm2int (join_left_scm);
+      int join_left = scm_to_int (join_left_scm);
       if (!join_left)
        programming_error (_f ("Mensural_ligature: (join_left == 0)"));
-      Real blotdiameter = (me->get_paper ()->get_dimension (ly_symbol2scm ("blotdiameter")));
+      Real blotdiameter = (me->get_layout ()->get_dimension (ly_symbol2scm ("blotdiameter")));
       Interval x_extent = Interval (0, thickness);
       Interval y_extent = (join_left > 0) ?
        Interval (-join_left * 0.5 * staff_space, 0) :
@@ -203,11 +182,9 @@ internal_brew_primitive (Grob *me, bool ledger_take_space)
     }
 
   int pos = Staff_symbol_referencer::get_rounded_position (me);
-  add_ledger_lines (me, &out, pos, 0, ledger_take_space);
   if (primitive & MLP_FLEXA)
     {
       pos += delta_pitch;
-      add_ledger_lines (me, &out, pos, 0.5*delta_pitch, ledger_take_space);
     }
 
   return out;
@@ -218,7 +195,7 @@ SCM
 Mensural_ligature::brew_ligature_primitive (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
-  return internal_brew_primitive (me, false).smobbed_copy ();
+  return internal_brew_primitive (me).smobbed_copy ();
 }
 
 MAKE_SCHEME_CALLBACK (Mensural_ligature, print, 1);