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