1 ;;;; interface-description.scm -- part of generated backend documentation
3 ;;;; source file of the GNU LilyPond music typesetter
5 ;;;; (c) 1998--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
6 ;;;; Jan Nieuwenhuizen <janneke@gnu.org>
9 ; should include default value?
13 'cluster-beacon-interface
15 "A place holder for the cluster spanner to determine the vertical
16 extents of a cluster spanner at this X position.
24 "Any kind of loudness sign"
30 "A fingering instruction"
41 'ligature-bracket-interface
42 "A bracket indicating a ligature in the original edition"
43 '(width thickness height ligature-primitive-callback))
46 'lyric-syllable-interface
47 "a single piece of lyrics"
52 "Any object that is related to lyrics."
61 'metronome-mark-interface
68 'multi-measure-interface
69 "Multi measure rest, and friends (mmrest number, mmrest text)."
79 'only-prebreak-interface
80 "Kill this grob after the line breaking process."
84 'piano-pedal-interface
90 'rhythmic-grob-interface
91 "Any object with a rhythmic basis. Used to determine which grobs
92 are interesting enough to maintain a hara-kiri staff."
97 'stanza-number-interface
102 ;;; todo: this is not typesetting info. Move to interpretation.
109 ;; todo: figure out where to put this doco:
112 Grob properties form a name space where you can set variables per
113 object. Each object however, may have multiple functions. For
114 example, consider a dynamic symbol, such @code{\ff} (fortissimo). It
115 is printed above or below the staff, it is a dynamic sign, and it is a
118 To reflect this different functions of a grob, procedures and variables
119 are grouped into so-called interfaces. The dynamic text for example
120 supports the following interfaces:
123 The glyph is built from characters from a font, hence the
124 @code{font-interface}. For objects supporting @code{font-interface}, you
125 can select alternate fonts by setting @code{font-style},
126 @code{font-point-size}, etc.
128 @item dynamic-interface
129 Dynamic interface is not associated with any variable or function in
130 particular, but this makes it possible to distinguish this grob from
131 other similar grobs (like @code{TextScript}), that have no meaning of
135 This interface is for texts that are to be set using special routines
136 to stack text into lines, using kerning, etc.
138 @item general-grob-interface
139 This interface is supported by all grob types.