From: Joe Neeman Date: Fri, 9 Feb 2007 20:40:11 +0000 (+0200) Subject: Prevent x-staff cycles due to Scripts. X-Git-Tag: release/2.11.18-1~5^2~6^2~1 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=f8f0396310e3eba722e2a9550f6607a05d0a4150;p=lilypond.git Prevent x-staff cycles due to Scripts. --- diff --git a/lily/include/script-interface.hh b/lily/include/script-interface.hh index 39e0388331..12ba90a8fe 100644 --- a/lily/include/script-interface.hh +++ b/lily/include/script-interface.hh @@ -24,6 +24,7 @@ public: DECLARE_GROB_INTERFACE(); DECLARE_SCHEME_CALLBACK (print, (SCM)); DECLARE_SCHEME_CALLBACK (calc_direction, (SCM)); + DECLARE_SCHEME_CALLBACK (calc_cross_staff, (SCM)); }; void make_script_from_event (Grob *p, Context *tg, diff --git a/lily/script-interface.cc b/lily/script-interface.cc index ff77193f17..faa5504942 100644 --- a/lily/script-interface.cc +++ b/lily/script-interface.cc @@ -65,6 +65,15 @@ Script_interface::calc_direction (SCM smob) return scm_from_int (d); } +MAKE_SCHEME_CALLBACK (Script_interface, calc_cross_staff, 1); +SCM +Script_interface::calc_cross_staff (SCM smob) +{ + Grob *me = unsmob_grob (smob); + Grob *stem = Note_column::get_stem (me->get_parent (X_AXIS)); + return stem->get_property ("cross-staff"); +} + MAKE_SCHEME_CALLBACK (Script_interface, print, 1); SCM diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 98d09dc9bf..79119aed96 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -1408,6 +1408,7 @@ (stencil . ,ly:script-interface::print) (direction . ,ly:script-interface::calc-direction) (font-encoding . fetaMusic) + (cross-staff . ,ly:script-interface::calc-cross-staff) (meta . ((class . Item) (interfaces . (script-interface side-position-interface