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