From: Mike Solomon Date: Sun, 3 Oct 2010 23:19:10 +0000 (+0100) Subject: Add `define-event-class' and scheme spanner regtest X-Git-Tag: release/2.13.36-1~71^2~1 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=552df4791dc0ed890e92c8a37bd2676267ebd90f;p=lilypond.git Add `define-event-class' and scheme spanner regtest --- 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