]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/staff-spacing.cc
Web-ja: update introduction
[lilypond.git] / lily / staff-spacing.cc
index 6a509d391e2961d1f452588f1bc1c35eef1dee69..c8e51f56f8ee4585ac4b5242c4151e238dd1d3b6 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2001--2011  Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 2001--2015  Han-Wen Nienhuys <hanwen@xs4all.nl>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -26,7 +26,6 @@ using namespace std;
 #include "paper-column.hh"
 #include "separation-item.hh"
 #include "warn.hh"
-#include "bar-line.hh"
 #include "staff-symbol-referencer.hh"
 #include "note-column.hh"
 #include "stem.hh"
@@ -45,7 +44,7 @@ using namespace std;
 Real
 Staff_spacing::optical_correction (Grob *me, Grob *g, Interval bar_height)
 {
-  if (!g || !Note_column::has_interface (g))
+  if (!g || !has_interface<Note_column> (g))
     return 0;
 
   Grob *stem = Note_column::get_stem (g);
@@ -56,7 +55,7 @@ Staff_spacing::optical_correction (Grob *me, Grob *g, Interval bar_height)
       Direction d = get_grob_direction (stem);
       if (Stem::is_normal_stem (stem) && d == DOWN)
         {
-          Interval stem_posns = stem->pure_height (stem, 0, INT_MAX);
+          Interval stem_posns = stem->pure_y_extent (stem, 0, INT_MAX);
 
           stem_posns.intersect (bar_height);
 
@@ -75,7 +74,8 @@ Staff_spacing::bar_y_positions (Grob *bar_grob)
 {
   Interval bar_size;
   bar_size.set_empty ();
-  if (Bar_line::has_interface (bar_grob))
+
+  if (bar_grob->internal_has_interface (ly_symbol2scm ("bar-line-interface")))
     {
       SCM glyph = bar_grob->get_property ("glyph-name");
       Grob *staff_sym = Staff_symbol_referencer::get_staff_symbol (bar_grob);
@@ -129,7 +129,7 @@ Staff_spacing::get_spacing (Grob *me, Grob *right_col, Real situational_space)
       /*
         TODO:
 
-        Should  insert a adjustable space here? For excercises, you might want to
+        Should insert an adjustable space here? For exercises, you might want to
         use a staff without a clef in the beginning.
       */
 
@@ -165,21 +165,21 @@ Staff_spacing::get_spacing (Grob *me, Grob *right_col, Real situational_space)
   Real fixed = last_ext[RIGHT];
   Real ideal = fixed + 1.0;
 
-  if (type == ly_symbol2scm ("fixed-space"))
+  if (scm_is_eq (type, ly_symbol2scm ("fixed-space")))
     {
       fixed += distance;
       ideal = fixed;
     }
-  else if (type == ly_symbol2scm ("extra-space"))
+  else if (scm_is_eq (type, ly_symbol2scm ("extra-space")))
     ideal = fixed + distance;
-  else if (type == ly_symbol2scm ("semi-fixed-space"))
+  else if (scm_is_eq (type, ly_symbol2scm ("semi-fixed-space")))
     {
       fixed += distance / 2;
       ideal = fixed + distance / 2;
     }
-  else if (type == ly_symbol2scm ("minimum-space"))
+  else if (scm_is_eq (type, ly_symbol2scm ("minimum-space")))
     ideal = last_ext[LEFT] + max (last_ext.length (), distance);
-  else if (type == ly_symbol2scm ("minimum-fixed-space"))
+  else if (scm_is_eq (type, ly_symbol2scm ("minimum-fixed-space")))
     {
       fixed = last_ext[LEFT] + max (last_ext.length (), distance);
       ideal = fixed;