]> git.donarmstrong.com Git - lilypond.git/blob - define-grob-interfaces.scm
5ce96901678af7dd69a26ecbc990aeb8daa09d58
[lilypond.git] / 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  'bass-figure-interface
41  "A bass figure text."
42  '(implicit))
43
44 (ly:add-interface
45  'bass-figure-alignment-interface
46  "Align a bass figure."
47  '())
48
49 (ly:add-interface
50  'bend-after-interface
51  "A doit or drop."
52  '(thickness delta-position))
53
54 (ly:add-interface
55  'dynamic-interface
56  "Any kind of loudness sign."
57  '())
58
59 (ly:add-interface
60  'dynamic-line-spanner-interface
61  "Dynamic line spanner."
62  '(avoid-slur))
63
64 (ly:add-interface
65  'dynamic-text-interface
66  "An absolute text dynamic."
67  '(right-padding))
68
69 (ly:add-interface
70  'dynamic-text-spanner-interface
71  "Dynamic text spanner."
72  '(text))
73
74 (ly:add-interface
75  'episema-interface
76  "An episema line."
77  '())
78
79 (ly:add-interface
80  'finger-interface
81  "A fingering instruction."
82  '())
83
84 (ly:add-interface
85  'footnote-interface
86  "Make a footnote."
87  '(automatically-numbered
88    footnote
89    footnote-text
90    numbering-assertion-function))
91
92 (ly:add-interface
93  'footnote-spanner-interface
94  "Make a footnote spanner."
95  '(footnote-text spanner-placement))
96
97 (ly:add-interface
98  'fret-diagram-interface
99  "A fret diagram"
100  '(align-dir fret-diagram-details size dot-placement-list
101    thickness))
102
103 (ly:add-interface
104   'glissando-interface
105   "A glissando."
106   '(glissando-index))
107
108 (ly:add-interface
109  'grace-spacing-interface
110  "Keep track of durations in a run of grace notes."
111  '(columns common-shortest-duration))
112
113 (ly:add-interface
114  'inline-accidental-interface
115  "An inlined accidental (i.e. normal accidentals, cautionary
116 accidentals)."
117  '())
118
119 (ly:add-interface
120  'instrument-specific-markup-interface
121  "Instrument-specific markup (like fret boards or harp pedal diagrams)."
122  '(fret-diagram-details graphical harp-pedal-details size thickness))
123
124 (ly:add-interface
125  'key-cancellation-interface
126  "A key cancellation."
127  '())
128
129 (ly:add-interface
130  'ligature-head-interface
131  "A note head that can become part of a ligature."
132  '())
133
134 (ly:add-interface
135  'ligature-bracket-interface
136  "A bracket indicating a ligature in the original edition."
137  '(width thickness height))
138
139 (ly:add-interface
140  'ligature-interface
141  "A ligature."
142  '())
143
144 (ly:add-interface
145  'lyric-interface
146  "Any object that is related to lyrics."
147  '())
148
149 (ly:add-interface
150  'lyric-syllable-interface
151  "A single piece of lyrics."
152  '())
153
154 (ly:add-interface
155  'mark-interface
156  "A rehearsal mark."
157  '())
158
159 (ly:add-interface
160  'metronome-mark-interface
161  "A metronome mark."
162  '())
163
164 (ly:add-interface
165  'multi-measure-interface
166  "Multi measure rest, and the text or number that is printed over it."
167  '(bound-padding))
168
169 (ly:add-interface
170  'note-name-interface
171  "Note names."
172  '())
173
174 (ly:add-interface
175  'only-prebreak-interface
176  "Kill this grob after the line breaking process."
177  '())
178
179 (ly:add-interface
180  'parentheses-interface
181  "Parentheses for other objects."
182  '(padding stencils))
183
184 (ly:add-interface
185  'percent-repeat-interface
186  "Beat, Double and single measure repeats."
187  '(dot-negative-kern slash-negative-kern slope thickness))
188
189 (ly:add-interface
190  'piano-pedal-interface
191  "A piano pedal sign."
192  '())
193
194 (ly:add-interface
195  'piano-pedal-script-interface
196  "A piano pedal sign, fixed size."
197  '())
198
199 (ly:add-interface
200  'pitched-trill-interface
201  "A note head to indicate trill pitches."
202  '(accidental-grob))
203
204 (ly:add-interface
205  'rhythmic-grob-interface
206  "Any object with a duration.  Used to determine which grobs are
207 interesting enough to maintain a hara-kiri staff."
208  '())
209
210 (ly:add-interface
211  'spacing-options-interface
212  "Supports setting of spacing variables."
213  '(spacing-increment shortest-duration-space))
214
215 (ly:add-interface
216  'stanza-number-interface
217  "A stanza number, to be put in from of a lyrics line."
218  '())
219
220 (ly:add-interface
221  'string-number-interface
222  "A string number instruction."
223  '())
224
225 (ly:add-interface
226  'stroke-finger-interface
227  "A right hand finger instruction."
228  '(digit-names))
229
230 (ly:add-interface
231  'system-start-text-interface
232  "Text in front of the system."
233  '(long-text self-alignment-X self-alignment-Y text))
234
235 (ly:add-interface
236  'tab-note-head-interface
237  "A note head in tablature."
238  '(details display-cautionary span-start))
239
240 (ly:add-interface
241  'trill-spanner-interface
242  "A trill spanner."
243  '())
244
245 (ly:add-interface
246  'trill-pitch-accidental-interface
247  "An accidental for trill pitch."
248  '())
249
250 (ly:add-interface
251  'unbreakable-spanner-interface
252  "A spanner that should not be broken across line breaks.  Override
253 with @code{breakable=##t}."
254  '(breakable))
255
256 (ly:add-interface
257  'volta-interface
258  "A volta repeat."
259  '())