;;;; Jan Nieuwenhuizen <janneke@gnu.org>
- ; should include default value?
+; should include default value?
;;; FIXME: naming.
;;; and `objects'.
+;;; TODO: this should be done through C++ macros, in order to have
+;;; tighter coupling between the C++ and its doco.
+
(define all-interfaces '())
(define (lily-interface symbol description props)
)
)
-(define (grob-description name . interfaces)
- (let* ((ifs (cons general-grob-interface interfaces))
+(define (grob-description . interfaces)
+ (let* ((ifs (cons grob-interface interfaces))
(props (map caddr ifs))
; (prop-typep-pairs (map (lambda (x) (cons (car x) (cadr x)))
; (apply append props)))
(syms (map car ifs))
)
(list (cons 'separator "\n\n\n") ;easy printing.
- (cons 'name name)
(cons 'interfaces syms)
(cons 'interface-descriptions ifs)
; (cons 'interface-descriptions (cadr merged))
(lily-interface
- 'general-grob-interface
+ 'grob-interface
"All grobs support this"
'(
X-offset-callbacks
#'thickness= weight of beams, in staffspace
"
'(auto-knee-gap
- staff-position
- height
- flag-width-function
- damping
- default-neutral-direction
- thickness
- space-function
beamed-stem-shorten
- height-quants
- vertical-position-quant-function
damping
+ flag-width-function
+ neutral-direction
outer-stem-length-limit
+ positions
slope-limit
- auto-knee-gap
+ thickness
)
)
+(lily-interface
+ 'staff-spacing-interface
+ ""
+ '(
+ ))
+
+(lily-interface
+ 'note-spacing-interface
+ ""
+ '(
+ ))
(lily-interface
'clef-interface
'note-column-interface
"Stem and noteheads combined"
'(
+ note-heads
horizontal-shift
force-hshift
))
stem-shorten
duration-log
beaming
- default-neutral-direction
+ neutral-direction
stem-end-position
support-head
heads
direction
- stem-length
+ length
style
flag-style
dir-forced
#'direction = where to put the victim object (left or right?)
"
'(
- side-support
+ side-support-elements
direction-source
direction
side-relative-direction
(lily-interface
'accidentals-interface
"Accidentals"
- '(
+ '(accidentals
left-padding
- right-padding
+ right-padding
+ paren-cautionaries
+ cautionary-size
))
(lily-interface
'note-head-interface
"Note head"
- '( style stem-attachment-function note-character ))
+ '( style stem-attachment-function ))
(lily-interface
tuplet-bracket-visibility
tuplet-number-visibility
thick
+ direction
))
'break-aligned-interface
"Items that are aligned in prefatory matter"
'(
- break-align-symbol
+ break-align-symbol
+ space-alist
visibility-lambda
breakable
))
(lily-interface
'arpeggio-interface
"Functions and settings for drawing an arpeggio symbol (a wavy line left to noteheads."
- '(stems))
+ '(stems arpeggio-direction))
'lyric-syllable-interface
"a single piece of lyrics"
'(
- word-space
+ word-space
+ alignment
+ ignore-length-mismatch
+ begin-alignment
+ end-alignment
))
contains-grace extra-space stretch-distance ))
+ (lily-interface
+ 'piano-pedal-interface
+ ""
+ '(pedal-type
+ edge-width
+ edge-height
+ shorten-pair
+ left-widen
+ right-widen
+ ))
+
+
+ (lily-interface
+ 'porrectus-interface
+ "A porrectus ligature, joining two note heads into a single grob."
+ '(
+ ))
+
(lily-interface
'spaceable-element-interface
"An grob (generally a Paper_column) that takes part in the
spacing problem. "
- '(
+ '(penalty
minimum-distances
ideal-distances
dir-list
@end example"
'(
- maximum-duration-for-spacing
- arithmetic-basicspace
- arithmetic-multiplier
+spacing-increment
+shortest-duration-space
))
(lily-interface
'stem-tremolo-interface
""
- '( stem beam-width beam-thickness beam-space-function
+ '( stem beam-width beam-thickness
))
))
- (lily-interface
- 'sustain-pedal-interface
- ""
- '(
- ))
-
(lily-interface
'system-start-delimiter-interface
"#'style can be bar-line, bracket or brace"
dash-length
line-thickness
edge-height
+ edge-width
edge-text
+ shorten-pair
type
))
))
-(ly-eval (cons
+(primitive-eval (cons
'begin
(map (lambda (x) (list 'define (car x) (list 'quote (cdr x))))
all-interfaces)))