From a13c39cf3f99b84f7f44c976748073010d116338 Mon Sep 17 00:00:00 2001
From: Han-Wen Nienhuys <hanwen@xs4all.nl>
Date: Wed, 3 Jan 2007 16:08:09 +0100
Subject: [PATCH] remove duplicate item-interface settings.

---
 scm/define-grobs.scm | 31 ++++++++++++++++++++-----------
 1 file changed, 20 insertions(+), 11 deletions(-)

diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm
index 51900ac8ce..70750b7746 100644
--- a/scm/define-grobs.scm
+++ b/scm/define-grobs.scm
@@ -108,7 +108,7 @@
 	(after-line-breaking . ,ly:accidental-interface::after-line-breaking)
 	(side-axis . ,X)
 	(meta . ((class . Item)
-		 (interfaces . (item-interface
+		 (interfaces . (
 				accidental-interface
 				break-aligned-interface
 				side-position-interface
@@ -468,7 +468,7 @@
 				rhythmic-grob-interface
 				text-interface
 				chord-name-interface
-				item-interface))))))
+				))))))
 
     (CombineTextScript
      . (
@@ -643,6 +643,12 @@
 	(self-alignment-Y . 0)
 	(script-priority . 100)
 
+	(after-line-breaking . ,(lambda (grob)
+				  (display (list
+					    (ly:grob-extent grob (ly:grob-parent grob X) X)
+					    " " 
+					    (ly:grob-relative-coordinate grob (ly:grob-parent grob X) X) "\n")))) 
+					    
 	(stencil . ,ly:text-interface::print)
 	(direction . ,ly:script-interface::calc-direction)
 	(text . ,fingering::calc-text) 
@@ -655,7 +661,7 @@
 				text-interface
 				side-position-interface
 				self-alignment-interface
-				item-interface))))))
+				))))))
     (FretBoard
      . ((stencil . ,fret-board::calc-stencil)
 	(finger-code . below-string)
@@ -1582,7 +1588,7 @@
 				text-interface
 				side-position-interface
 				self-alignment-interface
-				item-interface))))))
+				))))))
     
     (StrokeFinger
      . (
@@ -1603,7 +1609,7 @@
 				text-interface
 				side-position-interface
 				self-alignment-interface
-				item-interface))))))
+				))))))
     
 
     (SustainPedal
@@ -1847,8 +1853,7 @@
 	(side-axis . ,X)
 	(stencil . ,ly:accidental-interface::print)
 	(meta . ((class . Item)
-		 (interfaces . (item-interface
-				trill-pitch-accidental-interface
+		 (interfaces . (trill-pitch-accidental-interface
 				side-position-interface
 				font-interface))))))
 
@@ -1875,8 +1880,7 @@
 	(Y-offset . ,ly:staff-symbol-referencer::callback)
 	(font-size . -4)
 	(meta . ((class . Item)
-		 (interfaces . (item-interface
-				rhythmic-head-interface
+		 (interfaces . (rhythmic-head-interface
 				font-interface
 				pitched-trill-interface
 				ledgered-interface
@@ -2036,6 +2040,8 @@
 			       (cons 'spanner-interface ifaces-entry))))
      (else
       (ly:warning "Unknown class ~a" class)))
+
+    (set! ifaces-entry (uniq-list (sort ifaces-entry symbol<?)))
     (set! ifaces-entry (cons 'grob-interface ifaces-entry))
 
     (set! meta-entry (assoc-set! meta-entry 'name name-sym))
@@ -2091,10 +2097,11 @@
 
 (define pure-functions
   (list
+   ly:rest::height
    ly:staff-symbol-referencer::callback
    ly:staff-symbol::height))
 
-(define-public (pure-relevant grob)
+(define-public (pure-relevant? grob)
   (let ((extent-callback (ly:grob-property-data grob 'Y-extent)))
     (not (eq? #f
 	      (or
@@ -2106,7 +2113,9 @@
 		  (or
 		   (not (eq? extent-callback ly:grob::stencil-height))
 		   (memq (ly:grob-property-data grob 'stencil) pure-print-callbacks)
-		   (ly:stencil? (ly:grob-property-data grob 'stencil))))))))))
+		   (ly:stencil? (ly:grob-property-data grob 'stencil))
+
+		   ))))))))
 
 (define-public (call-pure-function unpure args start end)
   (if (ly:simple-closure? unpure)
-- 
2.39.5