]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/breathing-sign.cc
Run `make grand-replace'.
[lilypond.git] / lily / breathing-sign.cc
index a4180549fff48d0ccf3b4862ea0c21088ccb1b5b..517b8f8f1c36ee7cb2256eca6b6b6e3fad5f853c 100644 (file)
@@ -1,34 +1,31 @@
 /*
   breathing_sign.cc -- implement Breathing_sign
 
-  (c) 1999--2004 Michael Krause
+  (c) 1999--2008 Michael Krause
 
   written for the GNU LilyPond music typesetter
 
   TODO: --> see breathing-sign-engraver.cc
 
-  Extensions for ancient notation (c) 2003 by Juergen Reuter
+  Extensions for ancient notation (c) 2003--2008 by Juergen Reuter
 */
 
+#include "breathing-sign.hh"
+
 #include "staff-symbol-referencer.hh"
 #include "directional-element-interface.hh"
-#include "breathing-sign.hh"
-#include "string.hh"
-#include "stencil.hh"
-#include "paper-def.hh"
+#include "output-def.hh"
 #include "lookup.hh"
-
 #include "dimensions.hh"
 #include "direction.hh"
-#include "text-item.hh"
+#include "text-interface.hh"
 #include "font-interface.hh"
+#include "grob.hh"
 
 /*
   TODO: thickness should be a grob property (unit: linethickness)
- rather than hardwired to (staff_space / 6).
- */
-
-  
+  rather than hardwired to (staff_space / 6).
+*/
 
 /*
   UGH : this is full of C&P code. Consolidate!  --hwn
 /*
   Gregorian chant divisio minima.  (Actually, this was the original
   breathing sign by Michael. -- jr)
- */
-MAKE_SCHEME_CALLBACK (Breathing_sign,divisio_minima,1);
-SCM 
+*/
+MAKE_SCHEME_CALLBACK (Breathing_sign, divisio_minima, 1);
+SCM
 Breathing_sign::divisio_minima (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
   Real staff_space = Staff_symbol_referencer::staff_space (me);
-  Real staff_size;
 
   Real thickness = Staff_symbol_referencer::line_thickness (me);
-  thickness *= robust_scm2double (me->get_grob_property ("thickness"), 1.0);
-  if (Staff_symbol_referencer::get_staff_symbol (me))
-    {
-      staff_size = (Staff_symbol_referencer::line_count (me) - 1) * staff_space;
-    }
-  else
-    staff_size = 0.0;
+  thickness *= robust_scm2double (me->get_property ("thickness"), 1.0);
 
-  Real blotdiameter = me->get_paper ()->get_realvar (ly_symbol2scm ("blotdiameter"));
+  Real blotdiameter = me->layout ()->get_dimension (ly_symbol2scm ("blot-diameter"));
 
   /*
    * Draw a small vertical line through the uppermost (or, depending
@@ -70,25 +60,23 @@ Breathing_sign::divisio_minima (SCM smob)
 
 /*
   Gregorian chant divisio maior.
- */
-MAKE_SCHEME_CALLBACK (Breathing_sign,divisio_maior,1);
-SCM 
+*/
+MAKE_SCHEME_CALLBACK (Breathing_sign, divisio_maior, 1);
+SCM
 Breathing_sign::divisio_maior (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
   Real staff_space = Staff_symbol_referencer::staff_space (me);
   Real staff_size;
   Real thickness = Staff_symbol_referencer::line_thickness (me);
-  thickness *= robust_scm2double (me->get_grob_property ("thickness"), 1.0);
+  thickness *= robust_scm2double (me->get_property ("thickness"), 1.0);
 
   if (Staff_symbol_referencer::get_staff_symbol (me))
-    {
-      staff_size = (Staff_symbol_referencer::line_count (me) - 1) * staff_space;
-    }
+    staff_size = (Staff_symbol_referencer::line_count (me) - 1) * staff_space;
   else
     staff_size = 0.0;
 
-  Real blotdiameter = me->get_paper ()->get_realvar (ly_symbol2scm ("blotdiameter"));
+  Real blotdiameter = me->layout ()->get_dimension (ly_symbol2scm ("blot-diameter"));
 
   /*
    * Draw a vertical line that is vertically centered in the staff
@@ -110,25 +98,23 @@ Breathing_sign::divisio_maior (SCM smob)
 
 /*
   Gregorian chant divisio maxima.
- */
-MAKE_SCHEME_CALLBACK (Breathing_sign,divisio_maxima,1);
-SCM 
+*/
+MAKE_SCHEME_CALLBACK (Breathing_sign, divisio_maxima, 1);
+SCM
 Breathing_sign::divisio_maxima (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
   Real staff_space = Staff_symbol_referencer::staff_space (me);
   Real staff_size;
   Real thickness = Staff_symbol_referencer::line_thickness (me);
-  thickness *= robust_scm2double (me->get_grob_property ("thickness"), 1.0);
+  thickness *= robust_scm2double (me->get_property ("thickness"), 1.0);
 
   if (Staff_symbol_referencer::get_staff_symbol (me))
-    {
-      staff_size = (Staff_symbol_referencer::line_count (me) - 1) * staff_space;
-    }
+    staff_size = (Staff_symbol_referencer::line_count (me) - 1) * staff_space;
   else
     staff_size = 0.0;
 
-  Real blotdiameter = me->get_paper ()->get_realvar (ly_symbol2scm ("blotdiameter"));
+  Real blotdiameter = me->layout ()->get_dimension (ly_symbol2scm ("blot-diameter"));
 
   // like a "|" type bar
   Interval xdim (0, thickness);
@@ -140,25 +126,23 @@ Breathing_sign::divisio_maxima (SCM smob)
 
 /*
   Gregorian chant finalis.
- */
-MAKE_SCHEME_CALLBACK (Breathing_sign,finalis,1);
-SCM 
+*/
+MAKE_SCHEME_CALLBACK (Breathing_sign, finalis, 1);
+SCM
 Breathing_sign::finalis (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
   Real staff_space = Staff_symbol_referencer::staff_space (me);
   Real staff_size;
   Real thickness = Staff_symbol_referencer::line_thickness (me);
-  thickness *= robust_scm2double (me->get_grob_property ("thickness"), 1.0);
+  thickness *= robust_scm2double (me->get_property ("thickness"), 1.0);
 
   if (Staff_symbol_referencer::get_staff_symbol (me))
-    {
-      staff_size = (Staff_symbol_referencer::line_count (me) - 1) * staff_space;
-    }
+    staff_size = (Staff_symbol_referencer::line_count (me) - 1) * staff_space;
   else
     staff_size = 0.0;
 
-  Real blotdiameter = me->get_paper ()->get_realvar (ly_symbol2scm ("blotdiameter"));
+  Real blotdiameter = me->layout ()->get_dimension (ly_symbol2scm ("blot-diameter"));
 
   // like a "||" type bar
   Interval xdim (0, thickness);
@@ -172,12 +156,12 @@ Breathing_sign::finalis (SCM smob)
   return line1.smobbed_copy ();
 }
 
-MAKE_SCHEME_CALLBACK (Breathing_sign,offset_callback,2);
+MAKE_SCHEME_CALLBACK (Breathing_sign, offset_callback, 1);
 SCM
-Breathing_sign::offset_callback (SCM element_smob, SCM)
+Breathing_sign::offset_callback (SCM smob)
 {
-  Grob *me = unsmob_grob (element_smob);
-  
+  Grob *me = unsmob_grob (smob);
+
   Direction d = get_grob_direction (me);
   if (!d)
     {
@@ -185,11 +169,14 @@ Breathing_sign::offset_callback (SCM element_smob, SCM)
       set_grob_direction (me, d);
     }
 
-  Real inter_f = Staff_symbol_referencer::staff_space (me)/2;
-  int sz = Staff_symbol_referencer::line_count (me)-1;
-  return gh_double2scm (inter_f * sz * d);
+  Real inter = Staff_symbol_referencer::staff_space (me) / 2;
+  int sz = Staff_symbol_referencer::line_count (me) - 1;
+  return scm_from_double (inter * sz * d);
 }
 
-ADD_INTERFACE(Breathing_sign, "breathing-sign-interface",
-             "A breathing sign.",
-             "direction");
+ADD_INTERFACE (Breathing_sign,
+              "A breathing sign.",
+              
+              /* properties */
+              "direction "
+              );