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