X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdefine-grob-interfaces.scm;h=21dddeb6bc1161f219f5a8eb95e6e638ac7653ae;hb=57244befefb4bb8aad0f43e85da56ea378d64974;hp=26e050f8389959fb615c4c6d1b761934159af0e4;hpb=10809c81d2cf7066eb9838e732900229a900824b;p=lilypond.git diff --git a/scm/define-grob-interfaces.scm b/scm/define-grob-interfaces.scm index 26e050f838..21dddeb6bc 100644 --- a/scm/define-grob-interfaces.scm +++ b/scm/define-grob-interfaces.scm @@ -2,22 +2,13 @@ ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; -;;;; (c) 1998--2003 Han-Wen Nienhuys +;;;; (c) 1998--2005 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen ; should include default value? -(ly:add-interface - 'cluster-beacon-interface - - "A place holder for the cluster spanner to determine the vertical -extents of a cluster spanner at this X position. - - " - '(positions) - ) (ly:add-interface 'dynamic-interface @@ -31,6 +22,19 @@ extents of a cluster spanner at this X position. '() ) +(ly:add-interface + 'string-number-interface + "A string number instruction" + '() + ) + +(ly:add-interface + 'fret-diagram-interface + "A fret diagram" + '(align-dir barre-type dot-color dot-radius finger-code fret-count + label-dir number-type size string-count thickness) +) + (ly:add-interface 'ligature-interface "A ligature" @@ -47,6 +51,11 @@ extents of a cluster spanner at this X position. "a single piece of lyrics" '()) +(ly:add-interface + 'lyric-interface + "Any object that is related to lyrics." + '()) + (ly:add-interface 'mark-interface "a rehearsal mark" @@ -58,6 +67,13 @@ extents of a cluster spanner at this X position. '( )) + +(ly:add-interface + 'multi-measure-interface + "Multi measure rest, and the text or number that is printed over it." + '()) + + (ly:add-interface 'note-name-interface "Note name" @@ -66,7 +82,7 @@ extents of a cluster spanner at this X position. (ly:add-interface 'only-prebreak-interface "Kill this grob after the line breaking process." - '() ) + '()) (ly:add-interface 'piano-pedal-interface @@ -80,43 +96,22 @@ extents of a cluster spanner at this X position. are interesting enough to maintain a hara-kiri staff." '() ) + +(ly:add-interface + 'stanza-number-interface + "A stanza number, to be put in from of a lyrics line" + '() + ) + ;;; todo: this is not typesetting info. Move to interpretation. (ly:add-interface 'tablature-interface - "tablature notes" + "An interface for any notes set in a tablature staff" '()) -;; todo: figure out where to put this doco: - -" -Grob properties form a name space where you can set variables per -object. Each object however, may have multiple functions. For -example, consider a dynamic symbol, such @code{\ff} (fortissimo). It -is printed above or below the staff, it is a dynamic sign, and it is a -kind of text. - -To reflect this different functions of a grob, procedures and variables -are grouped into so-called interfaces. The dynamic text for example -supports the following interfaces: -@table @code -@item font-interface - The glyph is built from characters from a font, hence the -@code{font-interface}. For objects supporting @code{font-interface}, you -can select alternate fonts by setting @code{font-style}, -@code{font-point-size}, etc. - -@item dynamic-interface - Dynamic interface is not associated with any variable or function in -particular, but this makes it possible to distinguish this grob from -other similar grobs (like @code{TextScript}), that have no meaning of -dynamics. - -@item text-interface - This interface is for texts that are to be set using special routines -to stack text into lines, using kerning, etc. - -@item general-grob-interface - This interface is supported by all grob types. -@end table -" +(ly:add-interface + 'vertically-spaceable-interface + "Objects that should be kept at constant vertical distances. Typically: +@internalsref{VerticalAxisGroup} objects of @internalsref{Staff} contexts." + '())