X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fside-position-interface.cc;h=95eba005ee92f5173d1493068f4009a147fc7ed9;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=f702cba7b24061a169a70a18c7ad01e0fd8684e6;hpb=e7aa6c445f463844dbaa52d38ea4aac2882b5601;p=lilypond.git diff --git a/lily/side-position-interface.cc b/lily/side-position-interface.cc index f702cba7b2..95eba005ee 100644 --- a/lily/side-position-interface.cc +++ b/lily/side-position-interface.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1998--2014 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 @@ -72,7 +72,7 @@ get_support_set (Grob *me) acs = scm_cdr (acs)) for (SCM s = scm_cdar (acs); scm_is_pair (s); s = scm_cdr (s)) { - Grob *a = unsmob_grob (scm_car (s)); + Grob *a = Grob::unsmob (scm_car (s)); support.insert (a); } } @@ -96,7 +96,7 @@ axis_aligned_side_helper (SCM smob, Axis a, bool pure, int start, int end, SCM c current_off_ptr = &r; } - Grob *me = unsmob_grob (smob); + Grob *me = Grob::unsmob (smob); // We will only ever want widths of spanners after line breaking // so we can set pure to false if (dynamic_cast (me) && a == X_AXIS) @@ -138,7 +138,7 @@ MAKE_SCHEME_CALLBACK (Side_position_interface, calc_cross_staff, 1) SCM Side_position_interface::calc_cross_staff (SCM smob) { - Grob *me = unsmob_grob (smob); + Grob *me = Grob::unsmob (smob); extract_grob_set (me, "side-support-elements", elts); Direction my_dir = get_grob_direction (me) ; @@ -212,7 +212,7 @@ Side_position_interface::aligned_side (Grob *me, Axis a, bool pure, int start, i pure, start, end); - if (Skyline_pair::unsmob (skyp)) + if (Skyline_pair::is_smob (skyp)) { // for spanner pure heights, we don't know horizontal spacing, // so a spanner can never have a meaningful x coordiante @@ -271,7 +271,7 @@ Side_position_interface::aligned_side (Grob *me, Axis a, bool pure, int start, i start, end); - if (Skyline_pair::unsmob (sp)) + if (Skyline_pair::is_smob (sp)) { Real xc = pure && dynamic_cast (e) ? e->get_parent (X_AXIS)->relative_coordinate (common[X_AXIS], X_AXIS) @@ -380,10 +380,9 @@ Side_position_interface::aligned_side (Grob *me, Axis a, bool pure, int start, i Interval staff_span = Staff_symbol::line_span (staff); staff_span.widen (1); if (staff_span.contains (position) - /* In case of a ledger lines, quantize even if we're outside the staff. */ + /* If we are between notehead and staff, quantize for ledger lines. */ || (Note_head::has_interface (head) - - && abs (Staff_symbol_referencer::get_position (head)) > abs (position))) + && dir * position < 0)) { total_off += (rounded - position) * 0.5 * ss; if (Staff_symbol_referencer::on_line (me, int (rounded))) @@ -419,7 +418,7 @@ Side_position_interface::set_axis (Grob *me, Axis a) chain_offset_callback (me, (a == X_AXIS) ? x_aligned_side_proc - : ly_make_unpure_pure_container (y_aligned_side_proc, pure_y_aligned_side_proc), + : Unpure_pure_container::make_smob (y_aligned_side_proc, pure_y_aligned_side_proc), a); } } @@ -440,7 +439,7 @@ MAKE_SCHEME_CALLBACK (Side_position_interface, move_to_extremal_staff, 1); SCM Side_position_interface::move_to_extremal_staff (SCM smob) { - Grob *me = unsmob_grob (smob); + Grob *me = Grob::unsmob (smob); System *sys = dynamic_cast (me->get_system ()); Direction dir = get_grob_direction (me); if (dir != DOWN) @@ -465,7 +464,7 @@ Side_position_interface::move_to_extremal_staff (SCM smob) Axis_group_interface::add_element (top_staff, me); // Remove any cross-staff side-support dependencies - Grob_array *ga = unsmob_grob_array (me->get_object ("side-support-elements")); + Grob_array *ga = Grob_array::unsmob (me->get_object ("side-support-elements")); if (ga) { vector const &elts = ga->array ();