]> git.donarmstrong.com Git - lilypond.git/blob - scm/generic-property.scm
release: 1.5.8
[lilypond.git] / scm / generic-property.scm
1
2 ; BROKEN as of 1.3.55, FIXME
3 ;
4
5
6 ;
7 ; Format: 
8 ; (cons 'Type name
9 ;    (list PROPERTYDESCRIPTIONS))
10
11 ; where
12 ; PROPERTYDESCRIPTION
13 ; is
14 ;
15 ;  (list 'translatorPropertySymbol type-predicate backend-property-symbol)
16 ;
17 ; Descriptions earlier in the list take precedence over later descriptions.
18 ;
19
20
21 (define generic-beam-properties
22   (cons 'beam-interface
23         (list
24          (list 'beamSlopeDamping number? 'damping)
25          (list 'autoKneeGap number? 'auto-knee-gap)
26          (list 'autoInterstaffKneeGap number? 'auto-interstaff-knee-gap)
27          (list 'beamDirAlgorithm symbol? 'beam-dir-algorithm)
28          (list 'beamHeight number? 'height)
29          (list 'beamVerticalPosition number? 'staff-position)
30          )
31         )
32   )
33
34
35 (define generic-stem-properties
36   (cons 'stem-interface
37         (list
38          (list 'stemVerticalDirection dir? 'direction)
39          (list 'verticalDirection dir? 'direction)       
40          (list 'stemLength number? 'length)
41          (list 'flagStyle string? 'flag-style)
42          (list 'style symbol? 'style)
43          (list 'noStemExtend boolean? 'no-stem-extend)
44          (list 'stemShorten number? 'shorten)
45          ))
46   )
47
48 (define generic-dot-properties
49   (cons 'dot-interface
50         (list
51                 (list 'dotDirection dir? 'direction)
52                 (list 'verticalDirection dir? 'direction)
53                 )
54         ))
55
56 (define generic-script-properties
57   (cons 'script-interface
58         (list
59                   (list 'articulationScriptVerticalDirection dir? 'direction)
60                   (list 'articulationScriptPadding number? 'padding)
61
62                   ))
63   )
64
65
66
67 (define generic-text-properties
68   (cons 'text-item-interface
69         (list
70                      (list 'textStyle string? 'style)
71                      (list 'lyricAlignment dir? 'self-alignment-X)
72                      (list 'textScriptPadding number? 'padding)
73                      (list 'textVerticalAlignment dir? 'self-alignment-Y)
74                      (list 'textHorizontalAlignment dir? 'self-alignment-X)
75                      (list 'textScriptWordSpace number? 'word-space)
76                      )
77         ))
78
79 (define generic-sustain-pedal-properties
80   (cons 'sustain-pedal-interface
81         (list
82          (list 'sustainPedalPadding number? 'padding))))
83
84 (define generic-chord-name-properties
85   (cons 'chord-name-interface
86         (list
87          (list 'textScriptWordSpace number? 'word-space)
88          (list 'chordNameWordSpace number? 'word-space)
89          (list 'chordNameStyle string? 'style))))
90
91 (define generic-crescendo-properties
92   (cons 'crescendo-interface
93         (list
94          (list 'dynamicDirection dir? 'direction)
95          (list 'verticalDirection dir? 'direction)
96          (list 'dynamicPadding number? 'padding) 
97          (list 'dynamicMinimumSpace number? 'minimum-space) 
98          )))
99
100 (define generic-dynamic-line-spanner-properties
101   (cons 'dynamic-interface
102         (list
103                      (list 'dynamicDirection dir? 'direction)
104                      (list 'verticalDirection dir? 'direction)
105                      (list 'dynamicPadding number? 'padding) 
106                      (list 'dynamicMinimumSpace number? 'minimum-space) 
107                      )))
108   
109 (define generic-volta-spanner-properties
110   (cons 'volta-spanner-interface (list
111                      (list 'voltaVerticalDirection dir? 'direction)
112                      (list 'voltaPadding number? 'padding) 
113                      (list 'voltaMinimumSpace number? 'minimum-space) 
114                      )))
115   
116 (define generic-bar-properties
117   (cons 'staff-bar-interface
118         (list
119          (list 'barSize number? 'bar-size))
120         )
121   )     
122
123 (define generic-bar-number-properties
124   (cons 'bar-number-interface
125         (list
126          (list 'barNumberScriptPadding number? 'padding)
127          (list 'barNumberDirection dir? 'direction)      
128          )
129         
130         )
131   )
132
133   
134 ; don't do this yet. Depends on whennn the staff is really announced
135 (define generic-staff-symbol-properties
136   (cons 'staff-symbol-interface
137         (list
138          )
139         )
140   )
141
142 (define generic-breathing-sign-properties
143   (cons 'breathing-sign-interface
144         (list
145          (list 'breathingSignVerticalDirection dir? 'direction)
146          (list 'verticalDirection dir? 'direction)
147          )))
148
149 (define generic-clef-properties
150   (cons 'clef-interface
151         (list
152          (list 'clefStyle string? 'style))
153         )
154   )
155
156 (define generic-All-properties
157   (cons 'all
158         (list (list 'fontSize number? 'font-relative-size))))
159
160
161 (define generic-notehead-properties
162   (cons 'note-head-interface
163         (list (list 'noteHeadStyle symbol? 'style))))
164
165 (define generic-notename-properties
166   (cons 'note-name-interface
167         (list (list 'noteNameStyle symbol? 'style))))
168
169
170 (define generic-rest-properties
171   (cons 'rest-interface
172         (list (list 'restStyle string? 'reststyle))))
173
174 (define generic-rest-collision-properties
175   (cons 'rest-collision-interface
176         (list (list 'maximumRestCount number? 'maximum-rest-count))))
177
178 (define generic-tie-properties
179   (cons 'tie-interface
180         (list
181                (list 'tieVerticalDirection dir? 'direction)
182                (list 'verticalDirection dir? 'direction)
183 (list 'tieDash number? 'dashed)
184   )))
185
186 (define generic-tie-column-properties
187   (cons 'tie-column-interface (list
188                       (list 'tieVerticalDirection dir? 'direction)
189                       (list 'verticalDirection dir? 'direction)
190   )))
191
192 (define generic-note-column-properties
193   (cons 'note-column-interface
194         (list
195          (list 'horizontalNoteShift number? 'horizontal-shift)
196          (list 'forceHorizontalShift number? 'force-hshift)
197          )))
198
199 (define generic-collision-properties
200   (cons 'collision-interface
201         (list
202          (list 'collisionMergeDotted boolean? 'merge-differently-dotted)
203          )
204         )
205   )
206   
207 (define generic-slur-properties
208   (cons 'slur-interface
209         (list
210          (list 'slurVerticalDirection dir? 'direction)
211          (list 'verticalDirection dir? 'direction)       
212          (list 'slurDash number? 'dashed))))
213
214 (define generic-timesig-properties
215   (cons 'time-signature-interface
216         (list
217          (list 'timeSignatureStyle string? 'style))))
218
219 (define (symbol-or-boolean? s)
220   (or (boolean? s) (symbol? s)))
221
222 (define generic-tuplet-spanner-properties
223   (cons 'tuplet-spanner-interface
224         (list
225          (list 'tupletDirection dir? 'direction)
226          (list 'tupletNumberVisibility symbol-or-boolean? 'tuplet-number-visibility)
227          (list 'tupletBracketVisibility symbol-or-boolean? 'tuplet-bracket-visibility)
228         ))
229 )
230
231
232
233
234
235 ;;;;;;;;;;
236 ;; don't forget to add these to the Generic_property_list property in
237 ;; engraver.ly
238
239 (define generic-voice-properties
240   (list
241    generic-stem-properties
242    generic-breathing-sign-properties
243    generic-crescendo-properties
244    generic-dynamic-line-spanner-properties
245    generic-tie-properties
246    generic-tie-column-properties   
247    generic-tuplet-spanner-properties
248    generic-notehead-properties
249    generic-rest-properties
250    generic-slur-properties
251    generic-beam-properties
252    generic-text-properties
253    generic-sustain-pedal-properties
254    generic-note-column-properties
255    generic-script-properties
256    generic-All-properties
257    ))
258
259 (define generic-grace-properties generic-voice-properties)
260 (define generic-staff-properties
261   (list
262    generic-text-properties   
263    generic-bar-properties
264    generic-timesig-properties
265    generic-clef-properties
266    generic-collision-properties
267    generic-sustain-pedal-properties
268    generic-rest-collision-properties
269    generic-volta-spanner-properties
270 ;   generic-staff-symbol-properties
271    generic-All-properties      
272    )
273   )
274 (define generic-grand-staff-properties
275   (list
276    generic-text-properties   
277    generic-bar-properties
278    ))
279
280 (define generic-thread-properties
281   (list generic-All-properties
282         generic-notehead-properties
283         generic-dot-properties
284         )
285
286   )
287    
288 (define generic-lyrics-properties
289   (list generic-text-properties
290   )
291 )
292
293 (define generic-chord-staff-properties
294   (list generic-chord-name-properties
295   )
296 )