lilypond-1.5.2
[lilypond.git] / scm / generic-property.scm
blob740f0a641afb9ec0d01b57d8edecdfe577489091
2 ; BROKEN as of 1.3.55, FIXME
7 ; Format: 
8 ; (cons 'Type name
9 ;    (list PROPERTYDESCRIPTIONS))
10
11 ; where
12 ; PROPERTYDESCRIPTION
13 ; is
15 ;  (list 'translatorPropertySymbol type-predicate backend-property-symbol)
17 ; Descriptions earlier in the list take precedence over later descriptions.
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   )
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 'noStemExtend boolean? 'no-stem-extend)
43          (list 'stemShorten number? 'shorten)
44          ))
45   )
47 (define generic-dot-properties
48   (cons 'dot-interface
49         (list
50                 (list 'dotDirection dir? 'direction)
51                 (list 'verticalDirection dir? 'direction)
52                 )
53         ))
55 (define generic-script-properties
56   (cons 'script-interface
57         (list
58                   (list 'articulationScriptVerticalDirection dir? 'direction)
59                   (list 'articulationScriptPadding number? 'padding)
61                   ))
62   )
66 (define generic-text-properties
67   (cons 'text-item-interface
68         (list
69                      (list 'textStyle string? 'style)
70                      (list 'lyricAlignment dir? 'self-alignment-X)
71                      (list 'textScriptPadding number? 'padding)
72                      (list 'textVerticalAlignment dir? 'self-alignment-Y)
73                      (list 'textHorizontalAlignment dir? 'self-alignment-X)
74                      (list 'textScriptWordSpace number? 'word-space)
75                      )
76         ))
78 (define generic-sustain-pedal-properties
79   (cons 'sustain-pedal-interface
80         (list
81          (list 'sustainPedalPadding number? 'padding))))
83 (define generic-chord-name-properties
84   (cons 'chord-name-interface
85         (list
86          (list 'textScriptWordSpace number? 'word-space)
87          (list 'chordNameWordSpace number? 'word-space)
88          (list 'chordNameStyle string? 'style))))
90 (define generic-crescendo-properties
91   (cons 'crescendo-interface
92         (list
93          (list 'dynamicDirection dir? 'direction)
94          (list 'verticalDirection dir? 'direction)
95          (list 'dynamicPadding number? 'padding) 
96          (list 'dynamicMinimumSpace number? 'minimum-space) 
97          )))
99 (define generic-dynamic-line-spanner-properties
100   (cons 'dynamic-interface
101         (list
102                      (list 'dynamicDirection dir? 'direction)
103                      (list 'verticalDirection dir? 'direction)
104                      (list 'dynamicPadding number? 'padding) 
105                      (list 'dynamicMinimumSpace number? 'minimum-space) 
106                      )))
107   
108 (define generic-volta-spanner-properties
109   (cons 'volta-spanner-interface (list
110                      (list 'voltaVerticalDirection dir? 'direction)
111                      (list 'voltaPadding number? 'padding) 
112                      (list 'voltaMinimumSpace number? 'minimum-space) 
113                      )))
114   
115 (define generic-bar-properties
116   (cons 'staff-bar-interface
117         (list
118          (list 'barSize number? 'bar-size))
119         )
120   )     
122 (define generic-bar-number-properties
123   (cons 'bar-number-interface
124         (list
125          (list 'barNumberScriptPadding number? 'padding)
126          (list 'barNumberDirection dir? 'direction)      
127          )
128         
129         )
130   )
132   
133 ; don't do this yet. Depends on whennn the staff is really announced
134 (define generic-staff-symbol-properties
135   (cons 'staff-symbol-interface
136         (list
137          )
138         )
139   )
141 (define generic-breathing-sign-properties
142   (cons 'breathing-sign-interface
143         (list
144          (list 'breathingSignVerticalDirection dir? 'direction)
145          (list 'verticalDirection dir? 'direction)
146          )))
148 (define generic-clef-properties
149   (cons 'clef-interface
150         (list
151          (list 'clefStyle string? 'style))
152         )
153   )
155 (define generic-All-properties
156   (cons 'all
157         (list (list 'fontSize number? 'font-relative-size))))
160 (define generic-notehead-properties
161   (cons 'note-head-interface
162         (list (list 'noteHeadStyle symbol? 'style))))
164 (define generic-notename-properties
165   (cons 'note-name-interface
166         (list (list 'noteNameStyle symbol? 'style))))
169 (define generic-rest-properties
170   (cons 'rest-interface
171         (list (list 'restStyle string? 'reststyle))))
173 (define generic-rest-collision-properties
174   (cons 'rest-collision-interface
175         (list (list 'maximumRestCount number? 'maximum-rest-count))))
177 (define generic-tie-properties
178   (cons 'tie-interface
179         (list
180                (list 'tieVerticalDirection dir? 'direction)
181                (list 'verticalDirection dir? 'direction)
182 (list 'tieDash number? 'dashed)
183   )))
185 (define generic-tie-column-properties
186   (cons 'tie-column-interface (list
187                       (list 'tieVerticalDirection dir? 'direction)
188                       (list 'verticalDirection dir? 'direction)
189   )))
191 (define generic-note-column-properties
192   (cons 'note-column-interface
193         (list
194          (list 'horizontalNoteShift number? 'horizontal-shift)
195          (list 'forceHorizontalShift number? 'force-hshift)
196          )))
198 (define generic-collision-properties
199   (cons 'collision-interface
200         (list
201          (list 'collisionMergeDotted boolean? 'merge-differently-dotted)
202          )
203         )
204   )
205   
206 (define generic-slur-properties
207   (cons 'slur-interface
208         (list
209          (list 'slurVerticalDirection dir? 'direction)
210          (list 'verticalDirection dir? 'direction)       
211          (list 'slurDash number? 'dashed))))
213 (define generic-timesig-properties
214   (cons 'time-signature-interface
215         (list
216          (list 'timeSignatureStyle string? 'style))))
218 (define (symbol-or-boolean? s)
219   (or (boolean? s) (symbol? s)))
221 (define generic-tuplet-spanner-properties
222   (cons 'tuplet-spanner-interface
223         (list
224          (list 'tupletDirection dir? 'direction)
225          (list 'tupletNumberVisibility symbol-or-boolean? 'tuplet-number-visibility)
226          (list 'tupletBracketVisibility symbol-or-boolean? 'tuplet-bracket-visibility)
227         ))
234 ;;;;;;;;;;
235 ;; don't forget to add these to the Generic_property_list property in
236 ;; engraver.ly
238 (define generic-voice-properties
239   (list
240    generic-stem-properties
241    generic-breathing-sign-properties
242    generic-crescendo-properties
243    generic-dynamic-line-spanner-properties
244    generic-tie-properties
245    generic-tie-column-properties   
246    generic-tuplet-spanner-properties
247    generic-notehead-properties
248    generic-rest-properties
249    generic-slur-properties
250    generic-beam-properties
251    generic-text-properties
252    generic-sustain-pedal-properties
253    generic-note-column-properties
254    generic-script-properties
255    generic-All-properties
256    ))
258 (define generic-grace-properties generic-voice-properties)
259 (define generic-staff-properties
260   (list
261    generic-text-properties   
262    generic-bar-properties
263    generic-timesig-properties
264    generic-clef-properties
265    generic-collision-properties
266    generic-sustain-pedal-properties
267    generic-rest-collision-properties
268    generic-volta-spanner-properties
269 ;   generic-staff-symbol-properties
270    generic-All-properties      
271    )
272   )
273 (define generic-grand-staff-properties
274   (list
275    generic-text-properties   
276    generic-bar-properties
277    ))
279 (define generic-thread-properties
280   (list generic-All-properties
281         generic-notehead-properties
282         generic-dot-properties
283         )
285   )
286    
287 (define generic-lyrics-properties
288   (list generic-text-properties
289   )
292 (define generic-chord-staff-properties
293   (list generic-chord-name-properties
294   )