X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fsemi-tie.cc;h=a95b30737f263dda851cce80f9271b7934a4bc6c;hb=f9214bac21e9926dc3248416f58190c98c4167a9;hp=bddae0e2b2330ae7024803445b8609e0f2b7dad0;hpb=99242a027c2281ed7674772e9a0ae7fc86024be0;p=lilypond.git diff --git a/lily/semi-tie.cc b/lily/semi-tie.cc index bddae0e2b2..a95b30737f 100644 --- a/lily/semi-tie.cc +++ b/lily/semi-tie.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 2005--2006 Han-Wen Nienhuys + (c) 2005--2007 Han-Wen Nienhuys */ @@ -17,14 +17,13 @@ ADD_INTERFACE(Semi_tie, - "semi-tie-interface", - "A tie which is only on one side connected to note heads. ", /* properties */ "control-points " "direction " "details " + "head-direction " "note-head " "thickness " ); @@ -34,6 +33,8 @@ SCM Semi_tie::calc_control_points (SCM smob) { Grob *me = unsmob_grob (smob); + (void) me->get_property ("direction"); + if (Semi_tie_column::has_interface (me->get_parent (Y_AXIS))) { me->get_parent (Y_AXIS)->get_property ("positioning-done"); @@ -43,24 +44,8 @@ Semi_tie::calc_control_points (SCM smob) programming_error ("lv tie without Semi_tie_column. Killing lv tie."); me->suicide (); } - - return SCM_UNSPECIFIED; -} -MAKE_SCHEME_CALLBACK(Semi_tie, calc_direction, 1) -SCM -Semi_tie::calc_direction (SCM smob) -{ - Grob *me = unsmob_grob (smob); - if (Semi_tie_column::has_interface (me->get_parent (Y_AXIS))) - me->get_parent (Y_AXIS)->get_property("positioning-done"); - else - { - programming_error ("lv tie without Semi_tie_column"); - set_grob_direction (me, UP); - } - - return SCM_UNSPECIFIED; + return me->get_property_data ("control-points"); } int @@ -70,10 +55,10 @@ Semi_tie::get_position (Grob *me) return (int) rint (Staff_symbol_referencer::get_position (h)); } -int -Semi_tie::compare (Grob *const &s1, - Grob *const &s2) +bool +Semi_tie::less (Grob *const &s1, + Grob *const &s2) { - return sign (get_position (s1) - get_position (s2)); + return get_position (s1) < get_position (s2); }