X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftie-column.cc;h=5f111a8581274bc026c21059f09da714f836a214;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=62edbf68901e23fb69163f22827f5bfa1e67f800;hpb=08560a1b8076630c4fc6cb9b902614d8b74fd6fc;p=lilypond.git diff --git a/lily/tie-column.cc b/lily/tie-column.cc index 62edbf6890..5f111a8581 100644 --- a/lily/tie-column.cc +++ b/lily/tie-column.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2000--2012 Han-Wen Nienhuys + Copyright (C) 2000--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 @@ -29,19 +29,18 @@ #include "pointer-group-interface.hh" #include "tie.hh" #include "directional-element-interface.hh" -#include "tie-column-format.hh" #include "tie-formatting-problem.hh" #include "tie-configuration.hh" using namespace std; void -Tie_column::add_tie (Grob *tc, Grob *tie) +Tie_column::add_tie (Grob *tc, Spanner *tie) { Spanner *me = dynamic_cast (tc); if (tie->get_parent (Y_AXIS) - && Tie_column::has_interface (tie->get_parent (Y_AXIS))) + && has_interface (tie->get_parent (Y_AXIS))) return; if (!me->get_bound (LEFT) @@ -63,18 +62,16 @@ MAKE_SCHEME_CALLBACK (Tie_column, before_line_breaking, 1); SCM Tie_column::before_line_breaking (SCM smob) { - Spanner *me = dynamic_cast (unsmob_grob (smob)); + Spanner *me = unsmob (smob); for (SCM s = me->get_property ("ties"); scm_is_pair (s); s = scm_cdr (s)) { - Spanner *tie = dynamic_cast (unsmob_grob (scm_car (s))); - Direction dir = LEFT; - do + Spanner *tie = unsmob (scm_car (s)); + for (LEFT_and_RIGHT (dir)) { if (dir * tie->get_bound (dir)->get_column ()->get_rank () > dir * me->get_bound (dir)->get_column ()->get_rank ()) me->set_bound (dir, Tie::head (tie, dir)); } - while (flip (&dir) != LEFT); } return SCM_UNSPECIFIED; @@ -84,7 +81,7 @@ MAKE_SCHEME_CALLBACK (Tie_column, calc_positioning_done, 1) SCM Tie_column::calc_positioning_done (SCM smob) { - Grob *me = unsmob_grob (smob); + Grob *me = unsmob (smob); extract_grob_set (me, "ties", ro_ties); vector ties (ro_ties); if (!ties.size ())