]> git.donarmstrong.com Git - lilypond.git/blob - scm/generic-property.scm
1d53b08a85389cab291aa5bda10e3a3c56b1f5d3
[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-hs)
29          (list 'beamVerticalPosition number? 'y-position-hs)
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 'stemCentered boolean? 'stem-centered)
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 'textScriptPadding number? 'padding)
83          (list 'sustainPedalPadding number? 'padding))))
84
85 (define generic-chord-name-properties
86   (cons 'chord-name-interface
87         (list
88          (list 'textScriptWordSpace number? 'word-space)
89          (list 'chordNameWordSpace number? 'word-space)
90          (list 'chordNameStyle string? 'style))))
91
92 (define generic-crescendo-properties
93   (cons 'crescendo-interface
94         (list
95          (list 'dynamicDirection dir? 'direction)
96          (list 'verticalDirection dir? 'direction)
97          (list 'dynamicPadding number? 'padding) 
98          (list 'dynamicMinimumSpace number? 'minimum-space) 
99          )))
100
101 (define generic-dynamic-line-spanner-properties
102   (cons 'dynamic-interface
103         (list
104                      (list 'dynamicDirection dir? 'direction)
105                      (list 'verticalDirection dir? 'direction)
106                      (list 'dynamicPadding number? 'padding) 
107                      (list 'dynamicMinimumSpace number? 'minimum-space) 
108                      )))
109   
110 (define generic-volta-spanner-properties
111   (cons 'volta-spanner-interface (list
112                      (list 'voltaVerticalDirection dir? 'direction)
113                      (list 'voltaPadding number? 'padding) 
114                      (list 'voltaMinimumSpace number? 'minimum-space) 
115                      )))
116   
117 (define generic-bar-properties
118   (cons 'staff-bar-interface
119         (list
120          (list 'barSize number? 'bar-size))
121         )
122   )     
123
124 ; don't do this yet. Depends on whennn the staff is really announced
125 (define generic-staff-symbol-properties
126   (cons 'staff-symbol-interface
127         (list
128          )
129         )
130   )
131
132 (define generic-breathing-sign-properties
133   (cons 'breathing-sign-interface
134         (list
135          (list 'breathingSignVerticalDirection dir? 'direction)
136          (list 'verticalDirection dir? 'direction)
137          )))
138
139 (define generic-clef-properties
140   (cons 'clef-interface
141         (list
142          (list 'clefStyle string? 'style))
143         )
144   )
145
146 (define generic-All-properties
147   (cons 'all
148         (list (list 'fontSize number? 'fontsize))))
149
150
151 (define generic-notehead-properties
152   (cons 'note-head-interface
153         (list (list 'noteHeadStyle symbol? 'style))))
154
155
156 (define generic-rest-properties
157   (cons 'rest-interface
158         (list (list 'restStyle string? 'reststyle))))
159
160 (define generic-rest-collision-properties
161   (cons 'rest-collision-interface
162         (list (list 'maximumRestCount number? 'maximum-rest-count))))
163
164 (define generic-tie-properties
165   (cons 'tie-interface
166         (list
167                (list 'tieVerticalDirection dir? 'direction)
168                (list 'verticalDirection dir? 'direction)
169 (list 'tieDash number? 'dashed)
170   )))
171
172 (define generic-tie-column-properties
173   (cons 'tie-column-interface (list
174                       (list 'tieVerticalDirection dir? 'direction)
175                       (list 'verticalDirection dir? 'direction)
176   )))
177
178 (define generic-note-column-properties
179   (cons 'note-column-interface
180         (list
181          (list 'horizontalNoteShift number? 'horizontal-shift)
182          (list 'forceHorizontalShift number? 'force-hshift)
183          )))
184
185 (define generic-collision-properties
186   (cons 'collision-interface
187         (list
188          (list 'collisionMergeDotted boolean? 'merge-differently-dotted)
189          )
190         )
191   )
192   
193 (define generic-slur-properties
194   (cons 'slur-interface
195         (list
196          (list 'slurVerticalDirection dir? 'direction)
197          (list 'verticalDirection dir? 'direction)       
198          (list 'slurDash number? 'dashed))))
199
200 (define generic-timesig-properties
201   (cons 'time-signature-interface
202         (list
203          (list 'timeSignatureStyle string? 'style))))
204
205 (define (symbol-or-boolean? s)
206   (or (boolean? s) (symbol? s)))
207
208 (define generic-tuplet-spanner-properties
209   (cons 'tuplet-spanner-interface
210         (list
211          (list 'tupletDirection dir? 'direction)
212          (list 'tupletNumberVisibility symbol-or-boolean? 'tuplet-number-visibility)
213          (list 'tupletBracketVisibility symbol-or-boolean? 'tuplet-bracket-visibility)
214         ))
215 )
216
217
218
219
220
221 ;;;;;;;;;;
222 ;; don't forget to add these to the Generic_property_list property in
223 ;; engraver.ly
224
225 (define generic-voice-properties
226   (list
227    generic-stem-properties
228    generic-breathing-sign-properties
229    generic-crescendo-properties
230    generic-dynamic-line-spanner-properties
231    generic-tie-properties
232    generic-tie-column-properties   
233    generic-tuplet-spanner-properties
234    generic-notehead-properties
235    generic-rest-properties
236    generic-slur-properties
237    generic-beam-properties
238    generic-text-properties
239    generic-sustain-pedal-properties
240    generic-note-column-properties
241    generic-script-properties
242    generic-All-properties
243    ))
244
245 (define generic-grace-properties generic-voice-properties)
246 (define generic-staff-properties
247   (list
248    generic-text-properties   
249    generic-bar-properties
250    generic-timesig-properties
251    generic-clef-properties
252    generic-collision-properties
253    generic-sustain-pedal-properties
254    generic-rest-collision-properties
255    generic-volta-spanner-properties
256 ;   generic-staff-symbol-properties
257    generic-All-properties      
258    )
259   )
260 (define generic-grand-staff-properties
261   (list
262    generic-text-properties   
263    generic-bar-properties
264    ))
265
266 (define generic-thread-properties
267   (list generic-All-properties
268         generic-notehead-properties
269         generic-dot-properties
270         )
271
272   )
273    
274 (define generic-lyrics-properties
275   (list generic-text-properties
276   )
277 )
278
279 (define generic-chord-staff-properties
280   (list generic-chord-name-properties
281   )
282 )