From f8f0396310e3eba722e2a9550f6607a05d0a4150 Mon Sep 17 00:00:00 2001 From: Joe Neeman Date: Fri, 9 Feb 2007 22:40:11 +0200 Subject: [PATCH] Prevent x-staff cycles due to Scripts. --- lily/include/script-interface.hh | 1 + lily/script-interface.cc | 9 +++++++++ scm/define-grobs.scm | 1 + 3 files changed, 11 insertions(+) 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 -- 2.39.5