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