]> git.donarmstrong.com Git - lilypond.git/blob - scm/define-grob-interfaces.scm
Reformat some files to let emacs do its work correctly.
[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
38    note-heads
39    thickness))
40
41 (ly:add-interface
42  'bar-line-interface
43  "Print a special bar symbol.  It replaces the regular bar
44 symbol with a special symbol.  The argument @var{bartype}
45 is a string which specifies the kind of bar line to print.
46
47 The list of allowed glyphs and predefined bar lines can be
48 found in @file{scm/bar-line.scm}.
49
50 @code{gap} is used for the gaps in dashed bar lines."
51  '(allow-span-bar
52    bar-extent
53    gap
54    glyph
55    glyph-name
56    hair-thickness
57    has-span-bar
58    kern
59    rounded
60    thin-kern
61    thick-thickness))
62
63 (ly:add-interface
64  'bass-figure-interface
65  "A bass figure text."
66  '(implicit))
67
68 (ly:add-interface
69  'bass-figure-alignment-interface
70  "Align a bass figure."
71  '())
72
73 (ly:add-interface
74  'bend-after-interface
75  "A doit or drop."
76  '(delta-position
77    thickness))
78
79 (ly:add-interface
80  'clef-modifier-interface
81   "The number describing transposition of the clef, placed below
82 or above clef sign. Usually this is 8 (octave transposition)
83 or 15 (two octaves), but LilyPond allows any integer here."
84   '())
85
86 (ly:add-interface
87  'dynamic-interface
88  "Any kind of loudness sign."
89  '())
90
91 (ly:add-interface
92  'dynamic-line-spanner-interface
93  "Dynamic line spanner."
94  '(avoid-slur))
95
96 (ly:add-interface
97  'dynamic-text-interface
98  "An absolute text dynamic."
99  '(right-padding))
100
101 (ly:add-interface
102  'dynamic-text-spanner-interface
103  "Dynamic text spanner."
104  '(text))
105
106 (ly:add-interface
107  'episema-interface
108  "An episema line."
109  '())
110
111 (ly:add-interface
112  'finger-interface
113  "A fingering instruction."
114  '())
115
116 (ly:add-interface
117  'footnote-interface
118  "Make a footnote."
119  '(automatically-numbered
120    footnote
121    footnote-text
122    numbering-assertion-function))
123
124 (ly:add-interface
125  'footnote-spanner-interface
126  "Make a footnote spanner."
127  '(footnote-text
128    spanner-placement))
129
130 (ly:add-interface
131  'fret-diagram-interface
132  "A fret diagram"
133  '(align-dir
134    dot-placement-list
135    fret-diagram-details
136    size
137    thickness))
138
139 (ly:add-interface
140   'glissando-interface
141   "A glissando."
142   '(glissando-index))
143
144 (ly:add-interface
145  'grace-spacing-interface
146  "Keep track of durations in a run of grace notes."
147  '(columns
148    common-shortest-duration))
149
150 (ly:add-interface
151  'inline-accidental-interface
152  "An inlined accidental (i.e. normal accidentals, cautionary
153 accidentals)."
154  '())
155
156 (ly:add-interface
157  'instrument-specific-markup-interface
158  "Instrument-specific markup (like fret boards or harp pedal diagrams)."
159  '(fret-diagram-details graphical harp-pedal-details size thickness))
160
161 (ly:add-interface
162  'key-cancellation-interface
163  "A key cancellation."
164  '())
165
166 (ly:add-interface
167  'ligature-head-interface
168  "A note head that can become part of a ligature."
169  '())
170
171 (ly:add-interface
172  'ligature-bracket-interface
173  "A bracket indicating a ligature in the original edition."
174  '(width thickness height))
175
176 (ly:add-interface
177  'ligature-interface
178  "A ligature."
179  '())
180
181 (ly:add-interface
182  'lyric-interface
183  "Any object that is related to lyrics."
184  '())
185
186 (ly:add-interface
187  'lyric-syllable-interface
188  "A single piece of lyrics."
189  '())
190
191 (ly:add-interface
192  'mark-interface
193  "A rehearsal mark."
194  '())
195
196 (ly:add-interface
197  'measure-counter-interface
198  "A counter for numbering measures."
199  '(columns
200    count-from))
201
202 (ly:add-interface
203  'metronome-mark-interface
204  "A metronome mark."
205  '())
206
207 (ly:add-interface
208  'multi-measure-interface
209  "Multi measure rest, and the text or number that is printed over it."
210  '(bound-padding))
211
212 (ly:add-interface
213  'note-name-interface
214  "Note names."
215  '())
216
217 (ly:add-interface
218  'only-prebreak-interface
219  "Kill this grob after the line breaking process."
220  '())
221
222 (ly:add-interface
223  'parentheses-interface
224  "Parentheses for other objects."
225  '(padding
226    stencils))
227
228 (ly:add-interface
229  'percent-repeat-interface
230  "Beat, Double and single measure repeats."
231  '(dot-negative-kern
232    slash-negative-kern
233    slope
234    thickness))
235
236 (ly:add-interface
237  'piano-pedal-interface
238  "A piano pedal sign."
239  '())
240
241 (ly:add-interface
242  'piano-pedal-script-interface
243  "A piano pedal sign, fixed size."
244  '())
245
246 (ly:add-interface
247  'pitched-trill-interface
248  "A note head to indicate trill pitches."
249  '(accidental-grob))
250
251 (ly:add-interface
252  'rhythmic-grob-interface
253  "Any object with a duration.  Used to determine which grobs are
254 interesting enough to maintain a hara-kiri staff."
255  '())
256
257 (ly:add-interface
258  'spacing-options-interface
259  "Supports setting of spacing variables."
260  '(spacing-increment
261    shortest-duration-space))
262
263 (ly:add-interface
264  'span-bar-interface
265  "A bar line that is spanned between other barlines.
266   This interface is used for bar lines that connect different
267   staves."
268  '(glyph-name
269    elements
270    pure-Y-common
271    pure-relevant-grobs
272    pure-relevant-items
273    pure-relevant-spanners))
274
275 (ly:add-interface
276  'stanza-number-interface
277  "A stanza number, to be put in from of a lyrics line."
278  '())
279
280 (ly:add-interface
281  'string-number-interface
282  "A string number instruction."
283  '())
284
285 (ly:add-interface
286  'stroke-finger-interface
287  "A right hand finger instruction."
288  '(digit-names))
289
290 (ly:add-interface
291  'system-start-text-interface
292  "Text in front of the system."
293  '(long-text
294    self-alignment-X
295    self-alignment-Y
296    text))
297
298 (ly:add-interface
299  'tab-note-head-interface
300  "A note head in tablature."
301  '(details display-cautionary span-start))
302
303 (ly:add-interface
304  'trill-spanner-interface
305  "A trill spanner."
306  '())
307
308 (ly:add-interface
309  'trill-pitch-accidental-interface
310  "An accidental for trill pitch."
311  '())
312
313 (ly:add-interface
314  'unbreakable-spanner-interface
315  "A spanner that should not be broken across line breaks.  Override
316 with @code{breakable=##t}."
317  '(breakable))
318
319 (ly:add-interface
320  'volta-interface
321  "A volta repeat."
322  '())