From 552df4791dc0ed890e92c8a37bd2676267ebd90f Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Mon, 4 Oct 2010 00:19:10 +0100 Subject: [PATCH] Add `define-event-class' and scheme spanner regtest --- input/regression/scheme-text-spanner.ly | 206 ++++++++++++++++++++++++ scm/define-event-classes.scm | 15 ++ 2 files changed, 221 insertions(+) create mode 100644 input/regression/scheme-text-spanner.ly diff --git a/input/regression/scheme-text-spanner.ly b/input/regression/scheme-text-spanner.ly new file mode 100644 index 0000000000..f89dcc2c0d --- /dev/null +++ b/input/regression/scheme-text-spanner.ly @@ -0,0 +1,206 @@ +\version "2.13.36" + +\header { + texidoc = "Use @code{define-event-class}, scheme engraver methods, +and grob creation methods to create a fully functional text spanner +in scheme." +} + +#(define-event-class 'scheme-text-span-event + '(scheme-text-span-event + span-event + music-event + StreamEvent)) + +#(define (add-grob-definition grob-name grob-entry) + (let* ((meta-entry (assoc-get 'meta grob-entry)) + (class (assoc-get 'class meta-entry)) + (ifaces-entry (assoc-get 'interfaces meta-entry))) + (set-object-property! grob-name 'translation-type? list?) + (set-object-property! grob-name 'is-grob? #t) + (set! ifaces-entry (append (case class + ((Item) '(item-interface)) + ((Spanner) '(spanner-interface)) + ((Paper_column) '((item-interface + paper-column-interface))) + ((System) '((system-interface + spanner-interface))) + (else '(unknown-interface))) + ifaces-entry)) + (set! ifaces-entry (uniq-list (sort ifaces-entry symbol