X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fstaff-spacing.cc;h=c8e51f56f8ee4585ac4b5242c4151e238dd1d3b6;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=6a509d391e2961d1f452588f1bc1c35eef1dee69;hpb=b9a18c38bf25fe66b0ecea5e83d7beaf69ffa6c0;p=lilypond.git diff --git a/lily/staff-spacing.cc b/lily/staff-spacing.cc index 6a509d391e..c8e51f56f8 100644 --- a/lily/staff-spacing.cc +++ b/lily/staff-spacing.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2001--2011 Han-Wen Nienhuys + Copyright (C) 2001--2015 Han-Wen Nienhuys 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 (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;