]> git.donarmstrong.com Git - lilypond.git/blob - scm/define-grob-interfaces.scm
Revert "Uses special X alignment for instrument names."
[lilypond.git] / scm / define-grob-interfaces.scm
1 ;;;; This file is part of LilyPond, the GNU music typesetter.
2 ;;;;
3 ;;;; Copyright (C) 1998--2012  Han-Wen Nienhuys <hanwen@xs4all.nl>
4 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
5 ;;;;
6 ;;;; LilyPond is free software: you can redistribute it and/or modify
7 ;;;; it under the terms of the GNU General Public License as published by
8 ;;;; the Free Software Foundation, either version 3 of the License, or
9 ;;;; (at your option) any later version.
10 ;;;;
11 ;;;; LilyPond is distributed in the hope that it will be useful,
12 ;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 ;;;; GNU General Public License for more details.
15 ;;;;
16 ;;;; You should have received a copy of the GNU General Public License
17 ;;;; along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
18
19
20 ;; The interfaces defined here generally have no code (e.g.,
21 ;; dynamic-interface), or have callbacks defined entirely in
22 ;; scheme.  Others interfaces are defined in lily/*.cc with the
23 ;; ADD_INTERFACE function.
24
25 ;; should include default value?
26
27
28 (ly:add-interface
29  'accidental-suggestion-interface
30  "An accidental, printed as a suggestion (typically: vertically over a
31 note)."
32  '())
33
34 (ly:add-interface
35  'ambitus-interface
36  "The line between note heads for a pitch range."
37  '(gap note-heads thickness))
38
39 (ly:add-interface
40  'bar-line-interface
41  "Print a special bar symbol.  It replaces the regular bar
42 symbol with a special symbol.  The argument @var{bartype}
43 is a string which specifies the kind of bar line to print.
44
45 The list of allowed glyphs and predefined bar lines can be
46 found in @file{scm/bar-line.scm}.
47
48 @code{gap} is used for the gaps in dashed bar lines."
49  '(allow-span-bar bar-extent gap glyph glyph-name has-span-bar
50    hair-thickness kern rounded thin-kern thick-thickness))
51
52 (ly:add-interface
53  'bass-figure-interface
54  "A bass figure text."
55  '(implicit))
56
57 (ly:add-interface
58  'bass-figure-alignment-interface
59  "Align a bass figure."
60  '())
61
62 (ly:add-interface
63  'bend-after-interface
64  "A doit or drop."
65  '(thickness delta-position))
66
67 (ly:add-interface
68  'dynamic-interface
69  "Any kind of loudness sign."
70  '())
71
72 (ly:add-interface
73  'dynamic-line-spanner-interface
74  "Dynamic line spanner."
75  '(avoid-slur))
76
77 (ly:add-interface
78  'dynamic-text-interface
79  "An absolute text dynamic."
80  '(right-padding))
81
82 (ly:add-interface
83  'dynamic-text-spanner-interface
84  "Dynamic text spanner."
85  '(text))
86
87 (ly:add-interface
88  'episema-interface
89  "An episema line."
90  '())
91
92 (ly:add-interface
93  'finger-interface
94  "A fingering instruction."
95  '())
96
97 (ly:add-interface
98  'footnote-interface
99  "Make a footnote."
100  '(automatically-numbered
101    footnote
102    footnote-text
103    numbering-assertion-function))
104
105 (ly:add-interface
106  'footnote-spanner-interface
107  "Make a footnote spanner."
108  '(footnote-text spanner-placement))
109
110 (ly:add-interface
111  'fret-diagram-interface
112  "A fret diagram"
113  '(align-dir fret-diagram-details size dot-placement-list
114    thickness))
115
116 (ly:add-interface
117   'glissando-interface
118   "A glissando."
119   '(glissando-index))
120
121 (ly:add-interface
122  'grace-spacing-interface
123  "Keep track of durations in a run of grace notes."
124  '(columns common-shortest-duration))
125
126 (ly:add-interface
127  'inline-accidental-interface
128  "An inlined accidental (i.e. normal accidentals, cautionary
129 accidentals)."
130  '())
131
132 (ly:add-interface
133  'instrument-specific-markup-interface
134  "Instrument-specific markup (like fret boards or harp pedal diagrams)."
135  '(fret-diagram-details graphical harp-pedal-details size thickness))
136
137 (ly:add-interface
138  'key-cancellation-interface
139  "A key cancellation."
140  '())
141
142 (ly:add-interface
143  'ligature-head-interface
144  "A note head that can become part of a ligature."
145  '())
146
147 (ly:add-interface
148  'ligature-bracket-interface
149  "A bracket indicating a ligature in the original edition."
150  '(width thickness height))
151
152 (ly:add-interface
153  'ligature-interface
154  "A ligature."
155  '())
156
157 (ly:add-interface
158  'lyric-interface
159  "Any object that is related to lyrics."
160  '())
161
162 (ly:add-interface
163  'lyric-syllable-interface
164  "A single piece of lyrics."
165  '())
166
167 (ly:add-interface
168  'mark-interface
169  "A rehearsal mark."
170  '())
171
172 (ly:add-interface
173  'measure-counter-interface
174  "A counter for numbering measures."
175  '(columns count-from))
176
177 (ly:add-interface
178  'metronome-mark-interface
179  "A metronome mark."
180  '())
181
182 (ly:add-interface
183  'multi-measure-interface
184  "Multi measure rest, and the text or number that is printed over it."
185  '(bound-padding))
186
187 (ly:add-interface
188  'note-name-interface
189  "Note names."
190  '())
191
192 (ly:add-interface
193  'octavate-eight-interface
194   "Interface that permits the nominal identification of the octavian
195 annotation that multiplies by two the freqency of the pitches present
196 in a given staff were they played on a clef that lacked said octavian
197 annotation."
198   '())
199
200 (ly:add-interface
201  'only-prebreak-interface
202  "Kill this grob after the line breaking process."
203  '())
204
205 (ly:add-interface
206  'parentheses-interface
207  "Parentheses for other objects."
208  '(padding stencils))
209
210 (ly:add-interface
211  'percent-repeat-interface
212  "Beat, Double and single measure repeats."
213  '(dot-negative-kern slash-negative-kern slope thickness))
214
215 (ly:add-interface
216  'piano-pedal-interface
217  "A piano pedal sign."
218  '())
219
220 (ly:add-interface
221  'piano-pedal-script-interface
222  "A piano pedal sign, fixed size."
223  '())
224
225 (ly:add-interface
226  'pitched-trill-interface
227  "A note head to indicate trill pitches."
228  '(accidental-grob))
229
230 (ly:add-interface
231  'rhythmic-grob-interface
232  "Any object with a duration.  Used to determine which grobs are
233 interesting enough to maintain a hara-kiri staff."
234  '())
235
236 (ly:add-interface
237  'spacing-options-interface
238  "Supports setting of spacing variables."
239  '(spacing-increment shortest-duration-space))
240
241 (ly:add-interface
242  'span-bar-interface
243  "A bar line that is spanned between other barlines.
244   This interface is used for bar lines that connect different
245   staves."
246  '(glyph-name elements pure-Y-common pure-relevant-grobs
247    pure-relevant-items pure-relevant-spanners))
248
249 (ly:add-interface
250  'stanza-number-interface
251  "A stanza number, to be put in from of a lyrics line."
252  '())
253
254 (ly:add-interface
255  'string-number-interface
256  "A string number instruction."
257  '())
258
259 (ly:add-interface
260  'stroke-finger-interface
261  "A right hand finger instruction."
262  '(digit-names))
263
264 (ly:add-interface
265  'system-start-text-interface
266  "Text in front of the system."
267  '(long-text self-alignment-X self-alignment-Y text))
268
269 (ly:add-interface
270  'tab-note-head-interface
271  "A note head in tablature."
272  '(details display-cautionary span-start))
273
274 (ly:add-interface
275  'trill-spanner-interface
276  "A trill spanner."
277  '())
278
279 (ly:add-interface
280  'trill-pitch-accidental-interface
281  "An accidental for trill pitch."
282  '())
283
284 (ly:add-interface
285  'unbreakable-spanner-interface
286  "A spanner that should not be broken across line breaks.  Override
287 with @code{breakable=##t}."
288  '(breakable))
289
290 (ly:add-interface
291  'volta-interface
292  "A volta repeat."
293  '())