]> git.donarmstrong.com Git - lilypond.git/blob - scm/define-grob-interfaces.scm
Fix #789.
[lilypond.git] / scm / define-grob-interfaces.scm
1 ;;;; This file is part of LilyPond, the GNU music typesetter.
2 ;;;;
3 ;;;; Copyright (C) 1998--2009  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 ;; should include default value?
21
22
23 (ly:add-interface
24  'accidental-suggestion-interface
25  "An accidental, printed as a suggestion (typically: vertically over a
26 note)."
27  '())
28
29 (ly:add-interface
30  'ambitus-interface
31  "The line between note heads for a pitch range."
32  '(gap note-heads thickness))
33
34 (ly:add-interface
35  'bass-figure-interface
36  "A bass figure text."
37  '(implicit))
38
39 (ly:add-interface
40  'bass-figure-alignment-interface
41  "Align a bass figure."
42  '())
43
44 (ly:add-interface
45  'bend-after-interface
46  "A doit or drop."
47  '(thickness delta-position))
48
49 (ly:add-interface
50  'dynamic-interface
51  "Any kind of loudness sign."
52  '())
53
54 (ly:add-interface
55  'dynamic-line-spanner-interface
56  "Dynamic line spanner."
57  '(avoid-slur))
58
59 (ly:add-interface
60  'dynamic-text-spanner-interface
61  "Dynamic text spanner."
62  '(text))
63
64 (ly:add-interface
65  'finger-interface
66  "A fingering instruction."
67  '())
68
69 (ly:add-interface
70  'fret-diagram-interface
71  "A fret diagram"
72  '(align-dir fret-diagram-details size dot-placement-list
73    thickness))
74
75 (ly:add-interface
76  'grace-spacing-interface
77  "Keep track of durations in a run of grace notes."
78  '(columns common-shortest-duration))
79
80 (ly:add-interface
81  'instrument-specific-markup-interface
82  "Instrument-specific markup (like fret boards or harp pedal diagrams)."
83  '(fret-diagram-details harp-pedal-details size thickness))
84
85 (ly:add-interface
86  'key-cancellation-interface
87  "A key cancellation."
88  '())
89
90 (ly:add-interface
91  'ligature-bracket-interface
92  "A bracket indicating a ligature in the original edition."
93  '(width thickness height))
94
95 (ly:add-interface
96  'ligature-interface
97  "A ligature."
98  '())
99
100 (ly:add-interface
101  'lyric-interface
102  "Any object that is related to lyrics."
103  '())
104
105 (ly:add-interface
106  'lyric-syllable-interface
107  "A single piece of lyrics."
108  '())
109
110 (ly:add-interface
111  'mark-interface
112  "A rehearsal mark."
113  '())
114
115 (ly:add-interface
116  'metronome-mark-interface
117  "A metronome mark."
118  '())
119
120 (ly:add-interface
121  'multi-measure-interface
122  "Multi measure rest, and the text or number that is printed over it."
123  '(bound-padding))
124
125 (ly:add-interface
126  'note-name-interface
127  "Note names."
128  '())
129
130 (ly:add-interface
131  'only-prebreak-interface
132  "Kill this grob after the line breaking process."
133  '())
134
135 (ly:add-interface
136  'parentheses-interface
137  "Parentheses for other objects."
138  '(padding stencils))
139
140 (ly:add-interface
141  'percent-repeat-interface
142  "Beat, Double and single measure repeats."
143  '(dot-negative-kern slash-negative-kern slope thickness))
144
145 (ly:add-interface
146  'piano-pedal-interface
147  "A piano pedal sign."
148  '())
149
150 (ly:add-interface
151  'piano-pedal-script-interface
152  "A piano pedal sign, fixed size."
153  '())
154
155 (ly:add-interface
156  'pitched-trill-interface
157  "A note head to indicate trill pitches."
158  '(accidental-grob))
159
160 (ly:add-interface
161  'rhythmic-grob-interface
162  "Any object with a duration.  Used to determine which grobs are
163 interesting enough to maintain a hara-kiri staff."
164  '())
165
166 (ly:add-interface
167  'spacing-options-interface
168  "Supports setting of spacing variables."
169  '(spacing-increment shortest-duration-space))
170
171 (ly:add-interface
172  'stanza-number-interface
173  "A stanza number, to be put in from of a lyrics line."
174  '())
175
176 (ly:add-interface
177  'string-number-interface
178  "A string number instruction."
179  '())
180
181 (ly:add-interface
182  'stroke-finger-interface
183  "A right hand finger instruction."
184  '(digit-names))
185
186 (ly:add-interface
187  'system-start-text-interface
188  "Text in front of the system."
189  '(long-text self-alignment-X self-alignment-Y text))
190
191 (ly:add-interface
192  'tab-note-head-interface
193  "A note head in tablature."
194  '(details))
195
196 (ly:add-interface
197  'trill-spanner-interface
198  "A trill spanner."
199  '())
200
201 (ly:add-interface
202  'trill-pitch-accidental-interface
203  "An accidental for trill pitch."
204  '())
205
206 (ly:add-interface
207  'unbreakable-spanner-interface
208  "A spanner that should not be broken across line breaks.  Override
209 with @code{breakable=##t}."
210  '(breakable))
211
212 (ly:add-interface
213  'vertically-spaceable-interface
214  "Objects that should be kept at constant vertical distances.  Typically:
215 @rinternals{VerticalAxisGroup} objects of @rinternals{Staff} contexts."
216  '())
217
218 (ly:add-interface
219  'volta-interface
220  "A volta repeat."
221  '())