X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fseparation-item.cc;h=e29b8a912960454e099e1a89a5b367369c751c4d;hb=90e4d7057f3857da049dfda3d130017d4719bd6b;hp=ebee8d6bf3f0c53413232cf6dfbc52e40d611c9a;hpb=785441aeb8cc557217d1b0658ef88d058f58eeb4;p=lilypond.git diff --git a/lily/separation-item.cc b/lily/separation-item.cc index ebee8d6bf3..e29b8a9129 100644 --- a/lily/separation-item.cc +++ b/lily/separation-item.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1998--2012 Han-Wen Nienhuys + Copyright (C) 1998--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 @@ -46,8 +46,8 @@ Separation_item::add_conditional_item (Grob *me, Grob *e) Real Separation_item::set_distance (Item *l, Item *r, Real padding) { - Drul_array lines (Skyline_pair::unsmob (l->get_property ("horizontal-skylines")), - Skyline_pair::unsmob (r->get_property ("horizontal-skylines"))); + Drul_array lines (unsmob (l->get_property ("horizontal-skylines")), + unsmob (r->get_property ("horizontal-skylines"))); Skyline right = conditional_skyline (r, l); right.merge ((*lines[RIGHT])[LEFT]); @@ -68,7 +68,7 @@ Separation_item::set_distance (Item *l, Item *r, Real padding) bool Separation_item::is_empty (Grob *me) { - Skyline_pair *sky = Skyline_pair::unsmob (me->get_property ("horizontal-skylines")); + Skyline_pair *sky = unsmob (me->get_property ("horizontal-skylines")); return (!sky || sky->is_empty ()); } @@ -87,7 +87,7 @@ MAKE_SCHEME_CALLBACK (Separation_item, calc_skylines, 1); SCM Separation_item::calc_skylines (SCM smob) { - Item *me = unsmob_item (smob); + Item *me = unsmob (smob); vector bs = boxes (me, 0); Skyline_pair sp (bs, Y_AXIS); /* @@ -129,7 +129,7 @@ Separation_item::boxes (Grob *me, Grob *left) vector other_elts; // for now only arpeggios for (vsize i = 0; i < read_only_elts.size (); i++) { - if (Accidental_placement::has_interface (read_only_elts[i])) + if (has_interface (read_only_elts[i])) accidental_elts.push_back (read_only_elts[i]); else other_elts.push_back (read_only_elts[i]); @@ -153,11 +153,11 @@ Separation_item::boxes (Grob *me, Grob *left) bounds all of them). However, we can't exclude an axis-group that adds to its childrens' stencil. Currently, this is just TrillPitchGroup; hence the check for note-head-interface. */ - if (Axis_group_interface::has_interface (il) - && !Note_head::has_interface (il)) + if (has_interface (il) + && !has_interface (il)) continue; - Interval y (il->pure_height (ycommon, 0, very_large)); + Interval y (il->pure_y_extent (ycommon, 0, very_large)); Interval x (il->extent (pc, X_AXIS)); Interval extra_width = robust_scm2interval (elts[i]->get_property ("extra-spacing-width"), @@ -186,16 +186,24 @@ Separation_item::boxes (Grob *me, Grob *left) return out; } -MAKE_SCHEME_CALLBACK (Separation_item, print, 1) +MAKE_DOCUMENTED_SCHEME_CALLBACK (Separation_item, print, 1, + "Optional stencil for @code{PaperColumn} or" + "@code{NonMusicalPaperColumn}.\n" + "Draws the @code{horizontal-skylines} of each" + " @code{PaperColumn}, showing the shapes used" + " to determine the minimum distances between" + " @code{PaperColumns} at the note-spacing step," + " before staves have been spaced (vertically)" + " on the page.") SCM Separation_item::print (SCM smob) { if (!debug_skylines) return SCM_BOOL_F; - Grob *me = unsmob_grob (smob); + Grob *me = unsmob (smob); Stencil ret; - if (Skyline_pair *s = Skyline_pair::unsmob (me->get_property ("horizontal-skylines"))) + if (Skyline_pair *s = unsmob (me->get_property ("horizontal-skylines"))) { ret.add_stencil (Lookup::points_to_line_stencil (0.1, (*s)[LEFT].to_points (Y_AXIS)).in_color (255, 255, 0)); ret.add_stencil (Lookup::points_to_line_stencil (0.1, (*s)[RIGHT].to_points (Y_AXIS)).in_color (0, 255, 255));