]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/sustain-pedal.cc
Run `make grand-replace'.
[lilypond.git] / lily / sustain-pedal.cc
index 91a8308114a5489ad2f133f34e5000938823a450..1479f663658615e6f8cf52f4926694bc586913d1 100644 (file)
@@ -1,66 +1,66 @@
-/*   
-  sustain-pedal.cc --  implement Sustain_pedal
-  
+/*
+  sustain-pedal.cc -- implement Sustain_pedal
+
   source file of the GNU LilyPond music typesetter
-  
-  (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  
- */
+
+  (c) 2000--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
+*/
 #include "grob.hh"
-#include "molecule.hh"
+#include "stencil.hh"
 #include "font-interface.hh"
-#include "string.hh"
 
 // update comment --hwn 
 /*
   Urg.
   This is almost text
   Problem is:
-    * we have no kerning
-    * symbols are at wrong place in font
+  * we have no kerning
+  * symbols are at wrong place in font
 
 
 
   Properties:
 
-  glyph -- text string (TODO:   make one large glyph of the Ped symbol, removes need for member_brew_molecule ())
-
+  glyph -- text string (TODO: make one large glyph of the Ped symbol, removes need for member_print ())
 */
 
+/*
+  FIXME. Need to use markup.
+*/
 struct Sustain_pedal
 {
 public:
-  DECLARE_SCHEME_CALLBACK(brew_molecule, (SCM));
+  DECLARE_SCHEME_CALLBACK (print, (SCM));
 };
 
-
-MAKE_SCHEME_CALLBACK(Sustain_pedal,brew_molecule,1);
+MAKE_SCHEME_CALLBACK (Sustain_pedal, print, 1);
 SCM
-Sustain_pedal::brew_molecule (SCM smob) 
+Sustain_pedal::print (SCM smob)
 {
-  Grob * e = unsmob_element (smob);
-  
-  Molecule mol;
-  SCM glyph = e->get_grob_property ("text");
-  if (!gh_string_p (glyph))
+  Grob *e = unsmob_grob (smob);
+
+  Stencil mol;
+  SCM glyph = e->get_property ("text");
+  if (!scm_is_string (glyph))
     return mol.smobbed_copy ();
-  String text = ly_scm2string (glyph);
 
-  for (int i = 0; i < text.length_i (); i++)
+  string text = ly_scm2string (glyph);
+
+  for (ssize i = 0; i < text.length (); i++)
     {
-      String idx ("pedal-");
-      if (text.cut_str (i, 3) == "Ped")
+      string idx ("pedal.");
+      if (text.substr (i, 3) == "Ped")
        {
          idx += "Ped";
          i += 2;
        }
       else
-       idx += String (&text.byte_C ()[i], 1);
-      Molecule m = Font_interface::get_default_font (e)->find_by_name (idx);
-      if (!m.empty_b ())
+       idx += string (&text.c_str ()[i], 1);
+      Stencil m = Font_interface::get_default_font (e)->find_by_name (idx);
+      if (!m.is_empty ())
        mol.add_at_edge (X_AXIS, RIGHT, m, 0);
     }
-    
+
   return mol.smobbed_copy ();
 }