]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/staff-symbol.cc
Added texidoc template.
[lilypond.git] / lily / staff-symbol.cc
index 744beabe602243af8d8ab39ede3fb835b61a33a5..e6b73143fea5770213d3627c05789003ed88f857 100644 (file)
@@ -8,7 +8,7 @@
 
 #include "lookup.hh"
 #include "dimensions.hh"
-#include "paper-def.hh"
+#include "output-def.hh"
 #include "stencil.hh"
 #include "warn.hh"
 #include "item.hh"
@@ -38,18 +38,21 @@ Staff_symbol::print (SCM smob)
 
     --hwn.
    */
+  Real t = me->get_layout ()->get_dimension (ly_symbol2scm ("linethickness"));
+  t *= robust_scm2double (me->get_property ("thickness"), 1.0);
+  
   Direction d = LEFT;
   do
     {
       SCM width_scm = me->get_property ("width");
-      if (d == RIGHT && gh_number_p (width_scm))
+      if (d == RIGHT && scm_is_number (width_scm))
        {
          /*
            don't multiply by Staff_symbol_referencer::staff_space (me),
            since that would make aligning staff symbols of different sizes to
            one right margin hell.
          */      
-         span_points[RIGHT] = gh_scm2double (width_scm);
+         span_points[RIGHT] = scm_to_double (width_scm);
        }
       else
        {
@@ -60,13 +63,12 @@ Staff_symbol::print (SCM smob)
              && !x->extent (x, X_AXIS).is_empty ())
            span_points[d] += x->extent (x, X_AXIS)[d];
        }
+
+      span_points[d] -= d* t/2;
     }
   while (flip (&d) !=LEFT);
 
 
-  Real t = me->get_paper ()->get_dimension (ly_symbol2scm ("linethickness"));
-  t *= robust_scm2double (me->get_property ("thickness"), 1.0);
-  
   int l = Staff_symbol::line_count (me);
   
   Real height = (l-1) * staff_space (me) /2;
@@ -95,8 +97,8 @@ int
 Staff_symbol::line_count (Grob*me) 
 {
   SCM c = me->get_property ("line-count");
-  if (gh_number_p (c))
-    return gh_scm2int (c);
+  if (scm_is_number (c))
+    return scm_to_int (c);
   else
     return 0;
 }
@@ -104,13 +106,13 @@ Staff_symbol::line_count (Grob*me)
 Real
 Staff_symbol::staff_space (Grob*me)
 {
-  return robust_scm2double ( me->get_property ("staff-space"), 1.0);
+  return robust_scm2double (me->get_property ("staff-space"), 1.0);
 }
 
 Real
 Staff_symbol::get_line_thickness (Grob* me)
 {
-  Real lt =  me->get_paper ()->get_dimension (ly_symbol2scm ("linethickness"));
+  Real lt =  me->get_layout ()->get_dimension (ly_symbol2scm ("linethickness"));
 
   return robust_scm2double (me->get_property ("thickness"), 1.0) * lt;
 }