]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/tie-column.cc
Issue 5167/6: Changes: show \markup xxx = ... \etc assignments
[lilypond.git] / lily / tie-column.cc
index c73694d334e2f581f66727a1cfd012a26dac5033..5f111a8581274bc026c21059f09da714f836a214 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2000--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 2000--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
 #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<Spanner *> (tc);
 
   if (tie->get_parent (Y_AXIS)
-      && Tie_column::has_interface (tie->get_parent (Y_AXIS)))
+      && has_interface<Tie_column> (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<Spanner *> (unsmob_grob (smob));
+  Spanner *me = unsmob<Spanner> (smob);
   for (SCM s = me->get_property ("ties"); scm_is_pair (s); s = scm_cdr (s))
     {
-      Spanner *tie = dynamic_cast<Spanner *> (unsmob_grob (scm_car (s)));
-      Direction dir = LEFT;
-      do
+      Spanner *tie = unsmob<Spanner> (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<Grob> (smob);
   extract_grob_set (me, "ties", ro_ties);
   vector<Grob *> ties (ro_ties);
   if (!ties.size ())
@@ -122,5 +119,6 @@ ADD_INTERFACE (Tie_column,
                /* properties */
                "positioning-done "
                "tie-configuration "
+               "ties "
               );