X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdefine-grob-properties.scm;h=36fa9f0cbbb712e99eedcaeab9f925d680588b90;hb=00e988e3411483174d55606b5ac61f3feee504fd;hp=c7960fe76a6cf483efab30742c6a97baf2fc3724;hpb=3cfcd0df1125efe0eddc1f361f9bf24243ed12b7;p=lilypond.git diff --git a/scm/define-grob-properties.scm b/scm/define-grob-properties.scm index c7960fe76a..36fa9f0cbb 100644 --- a/scm/define-grob-properties.scm +++ b/scm/define-grob-properties.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 1998--2011 Han-Wen Nienhuys +;;;; Copyright (C) 1998--2012 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify @@ -64,6 +64,8 @@ numbered?") averaged over staves.") (avoid-note-head ,boolean? "If set, the stem of a chord does not pass through all note heads, but starts at the last note head.") + (avoid-scripts ,boolean? "If set, a tuplet bracket avoids the +scripts associated with the note heads it encompasses.") (avoid-slur ,symbol? "Method of handling slur collisions. Choices are @code{inside}, @code{outside}, @code{around}, and @code{ignore}. @code{inside} adjusts the slur if needed to keep the @@ -106,6 +108,7 @@ default length of the beamlet to the right. The actual length of a beamlet is determined by taking either the default length or the length specified by @code{beamlet-max-length-proportion}, whichever is smaller.") + (beam-gap ,number-pair? "Size of a gap in a @code{Beam}.") (beamlet-max-length-proportion ,pair? "The maximum length of a beamlet, as a proportion of the distance between two adjacent stems.") (before-line-breaking ,boolean? "Dummy property, used to trigger @@ -162,6 +165,8 @@ stick out of its bounds?") @code{#(@var{end-of-line} @var{unbroken} @var{begin-of-line})}. @code{#t} means visible, @code{#f} means killed.") (breakable ,boolean? "Allow breaks here.") + (broken-bound-padding ,number? "The amount of padding to insert +when a spanner is broken at a line break.") ;; ;; c @@ -174,8 +179,13 @@ hairpins (al/@/del niente).") edges of beams?") (collapse-height ,ly:dimension? "Minimum height of system start delimiter. If equal or smaller, the bracket/@/brace/@/line is removed.") + (collision-bias ,number? "Number determining how much to favor the +left (negative) or right (positive). Larger absolute values in either +direction will push a collision in this direction.") (collision-interfaces ,list? "A list of interfaces for which automatic beam-collision resolution is run.") + (collision-padding ,number? "Amount of padding to apply after +a collision is detected via the self-alignment-interface.") (collision-voice-only ,boolean? "Does automatic beam collsion apply only to the voice in which the beam was created?") (color ,color? "The color of this grob.") @@ -191,6 +201,9 @@ this grob looks as a continued break.") (control-points ,list? "List of offsets (number pairs) that form control points for the tie, slur, or bracket shape. For B@'eziers, this should list the control points of a third-order B@'ezier curve.") + (count-from ,integer? "The first measure in a measure count +receives this number. The following measures are numbered in +increments from this initial value.") ;; ;; d @@ -244,7 +257,6 @@ Positive means move the center to the right.") the vertical edges: @code{(@var{left-height} . @var{right-height})}.") (edge-text ,pair? "A pair specifying the texts to be set at the edges: @code{(@var{left-text} . @var{right-text})}.") - (elements-filtered ,boolean? "Callback to filter an element list.") (round-up-exceptions ,list? "A list of pairs where car is the numerator and cdr the denominator of a moment. Each pair in this list means that the multi-measure rests of the corresponding length will be rounded up to @@ -268,16 +280,20 @@ problem, we pad each item by this amount (by adding the @q{car} on the left side of the item and adding the @q{cdr} on the right side of the item). In order to make a grob take up no horizontal space at all, set this to @code{(+inf.0 . -inf.0)}.") - (extra-X-extent ,number-pair? "A grob is enlarged in -X@tie{}dimension by this much.") - (extra-Y-extent ,number-pair? "A grob is enlarged in -Y@tie{}dimension by this much.") ;; ;; f ;; (flag-count ,number? "The number of tremolo beams.") + (flat-positions ,list? "Flats in key signatures are placed +within the specified ranges of staff-positions. The general form +is a list of pairs, with one pair for each type of clef, in order +of the staff-position at which each clef places C: +@code{(alto treble tenor soprano baritone mezzosoprano bass)}. +If the list contains a single element it applies for all clefs. +A single number in place of a pair sets accidentals within the octave +ending at that staff-position.") (font-encoding ,symbol? "The font encoding is the broadest category for selecting a font. Currently, only lilypond's system fonts (Emmentaler) are using this property. Available @@ -299,10 +315,13 @@ include @code{upright}, @code{italic}, @code{caps}.") approximately 12% larger; 6@tie{}steps are exactly a factor@tie{}2 larger. Fractional values are allowed.") (footnote ,boolean? "Should this be a footnote or in-note?") + (footnote-music ,ly:music? "Music creating a footnote.") (footnote-text ,markup? "A footnote for the grob.") (force-hshift ,number? "This specifies a manual shift for notes in collisions. The unit is the note head width of the first voice note. This is used by @rinternals{note-collision-interface}.") + (forced-spacing ,number? "Spacing forced between grobs, used in +various ligature engravers.") (fraction ,fraction? "Numerator and denominator of a time signature object.") (french-beaming ,boolean? "Use French beaming style for this @@ -413,8 +432,15 @@ read from the NonMusicalPaperColumn that begins the measure.") by glissandi?") (glyph ,string? "A string determining what @q{style} of glyph is typeset. Valid choices depend on the function that is reading this -property.") - (glyph-name ,string? "The glyph name within the font.") +property. + +In combination with (span) bar lines, it is a string resembling the +bar line appearance in ASCII form.") + (glyph-name ,string? "The glyph name within the font. + +In the context of (span) bar lines, @var{glyph-name} represents +a processed form of @code{glyph}, where decisions about line breaking +etc. are already taken.") (glyph-name-alist ,list? "An alist of key-string pairs.") (graphical ,boolean? "Display in graphical (vs. text) form.") (grow-direction ,ly:dir? "Crescendo or decrescendo?") @@ -463,6 +489,9 @@ units.") slur, the closer it is to this height.") (hide-tied-accidental-after-break ,boolean? "If set, an accidental that appears on a tied note after a line break will not be displayed.") + (horizon-padding ,number? "The amount to pad the axis +along which a @code{Skyline} is built for the +@code{side-position-interface}.") (horizontal-shift ,integer? "An integer that identifies ranking of @code{NoteColumn}s for horizontal shifting. This is used by @rinternals{note-collision-interface}.") @@ -473,6 +502,13 @@ left and one to the right of this grob.") ;; ;; i ;; + (id ,string? "An id string for the grob. Depending on the typestting +backend being used, this id will be assigned to a group containing all of +the stencils that comprise a given grob. For example, in the svg backend, +the string will be assigned to the @code{id} attribute of a group () +that encloses the stencils that comprise the grob. In the Postscript +backend, as there is no way to group items, the setting of the id property +will have no effect.") (ignore-collision ,boolean? "If set, don't do note collision resolution on this @code{NoteColumn}.") (implicit ,boolean? "Is this an implicit bass figure?") @@ -642,6 +678,24 @@ is raised so that it is not so close to its neighbor.") (outside-staff-padding ,number? "The padding to place between this grob and the staff when spacing according to @code{outside-staff-priority}.") + (outside-staff-placement-directive ,symbol? "One of four directives +telling how outside staff objects should be placed. +@itemize @bullet +@item +@code{left-to-right-greedy} -- Place each successive grob from left to +right. +@item +@code{left-to-right-polite} -- Place a grob from left to right only if +it does not potentially overlap with another grob that has been placed +on a pass through a grob array. If there is overlap, do another pass to +determine placement. +@item +@code{right-to-left-greedy} -- Same as @code{left-to-right-greedy}, but +from right to left. +@item +@code{right-to-left-polite} -- Same as @code{left-to-right-polite}, but +from right to left. +@end itemize") (outside-staff-priority ,number? "If set, the grob is positioned outside the staff in such a way as to avoid all collisions. In case of a potential collision, the grob with the smaller @@ -680,7 +734,8 @@ positions are requested, the closest one is taken.") (prefer-dotted-right ,boolean? "For note collisions, prefer to shift dotted up-note to the right, rather than shifting just the dot.") - + (protrusion ,number? "In an arpeggio bracket, the length of the +horizontal edges.") ;; ;; r @@ -705,6 +760,7 @@ of an object (e.g., between note and its accidentals).") (rotation ,list? "Number of degrees to rotate this object, and what point to rotate around. For example, @code{'(45 0 0)} rotates by 45 degrees around the center of this object.") + (rounded ,boolean? "Decide whether lines should be drawn rounded or not.") (round-up-to-longer-rest ,boolean? "Displays the longer multi-measure rest when the length of a measure is between two values of @code{usable-duration-logs}. For example, displays a breve instead of a whole @@ -718,14 +774,24 @@ in a 3/2 measure.") for stems that are placed in tight configurations. This amount is used for stems with the same direction to compensate for note head to stem distance.") - (script-priority ,number? "A sorting key that determines in what -order a script is within a stack of scripts.") + (script-priority ,number? "A key for determining the order of +scripts in a stack, by being added to the position of the script in +the user input, the sum being the overall priority. Smaller means +closer to the head.") (self-alignment-X ,number? "Specify alignment of an object. The value @w{@code{-1}} means left aligned, @code{0}@tie{}centered, and @code{1}@tie{}right-aligned in X@tie{}direction. Other numerical values may also be specified.") (self-alignment-Y ,number? "Like @code{self-alignment-X} but for the Y@tie{}axis.") + (sharp-positions ,list? "Sharps in key signatures are placed +within the specified ranges of staff-positions. The general form +is a list of pairs, with one pair for each type of clef, in order +of the staff-position at which each clef places C: +@code{(alto treble tenor soprano baritone mezzosoprano bass)}. +If the list contains a single element it applies for all clefs. +A single number in place of a pair sets accidentals within the octave +ending at that staff-position.") (shorten-pair ,number-pair? "The lengths to shorten a text-spanner on both sides, for example a pedal bracket. Positive values shorten the text-spanner, while negative values lengthen it.") @@ -763,6 +829,8 @@ slashes in percent repeat glyphs. Larger values bring the two elements closer together.") (slope ,number? "The slope of this object.") (slur-padding ,number? "Extra distance between slur and script.") + (snap-radius ,number? "The maximum distance between two objects that +will cause them to snap to alignment along an axis.") (space-alist ,list? "A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: @code{(@var{break-align-symbol} @var{type} @@ -893,8 +961,8 @@ should use @code{LEFT}.") (tie-configuration ,list? "List of @code{(@var{position} . @var{dir})} pairs, indicating the desired tie configuration, where @var{position} is the offset from the center of the staff in staff -space and @var{dir} indicates the direction of the tie -(@code{1}=>up, @w{@code{-1}}=>down, @code{0}=>center). A non-pair entry +space and @var{dir} indicates the direction of the tie (@code{1}=>up, +@w{@code{-1}}=>down, @code{0}=>center). A non-pair entry in the list causes the corresponding tie to be formatted automatically.") (to-barline ,boolean? "If true, the spanner will stop at the bar @@ -926,7 +994,6 @@ positioning?") (vertical-skylines ,ly:skyline-pair? "Two skylines, one above and one below this grob.") - ;; ;; w ;; @@ -997,7 +1064,6 @@ constructed from a whole number of squiggles.") dynamic spanners.") (all-elements ,ly:grob-array? "An array of all grobs in this line. Its function is to protect objects from being garbage collected.") - (arpeggio ,ly:grob? "A pointer to an @code{Arpeggio} object.") (axis-group-parent-X ,ly:grob? "Containing X@tie{}axis group.") (axis-group-parent-Y ,ly:grob? "Containing Y@tie{}axis group.") @@ -1013,6 +1079,7 @@ bounds are spaced.") (columns ,ly:grob-array? "An array of grobs, typically containing @code{PaperColumn} or @code{NoteColumn} objects.") + (concurrent-hairpins ,ly:grob-array? "All concurrent hairpins.") (conditional-elements ,ly:grob-array? "Internal use only.") (covered-grobs ,ly:grob-array? "Grobs that could potentially collide with a beam.") @@ -1031,13 +1098,18 @@ in addition to notes and stems.") (figures ,ly:grob-array? "Figured bass objects for continuation line.") (flag ,ly:grob? "A pointer to a @code{Flag} object.") (footnote-stencil ,ly:stencil? "The stencil of a system's footnotes.") - (full-score-pure-minimum-translations ,list? "A list of translations -for a full score's worth of grobs.") + (footnotes-before-line-breaking ,ly:grob-array? "Footnote grobs of +a whole system.") + (footnotes-after-line-breaking ,ly:grob-array? "Footnote grobs of +a broken system.") (glissando-index ,integer? "The index of a glissando in its note column.") (grace-spacing ,ly:grob? "A run of grace notes.") + (has-span-bar ,pair? "A pair of grobs containing the span bars to +be drawn below and above the staff. If no span bar is in a position, +the respective element is set to @code{#f}.") (heads ,ly:grob-array? "An array of note heads.") (items-worth-living ,ly:grob-array? "An array of interesting items. If @@ -1053,12 +1125,21 @@ empty in a particular staff, then that staff is erased.") (left-neighbor ,ly:grob? "The right-most column that has a spacing-wish for this column.") + (melody-spanner ,ly:grob? "The @code{MelodyItem} object for a stem.") + (minimum-translations-alist ,list? "An list of translations for a given +start and end point.") + + (neighbors ,ly:grob-array? "The X-axis neighbors of a grob. Used by the +pure-from-neighbor-interface to determine various grob heights.") + (normal-stems ,ly:grob-array? "An array of visible stems.") (note-columns ,ly:grob-array? "An array of @code{NoteColumn} grobs.") (note-head ,ly:grob? "A single note head.") (note-heads ,ly:grob-array? "An array of note head grobs.") (pedal-text ,ly:grob? "A pointer to the text of a mixed-style piano pedal.") + (potential-X-colliding-grobs ,ly:grob-array? "Grobs that can potentially +collide with a self-aligned grob on the X-axis.") (pure-relevant-grobs ,ly:grob-array? "All the grobs (items and spanners) that are relevant for finding the @code{pure-Y-extent}") (pure-relevant-items ,ly:grob-array? "A subset of elements that are @@ -1095,9 +1176,20 @@ results, use @code{LEFT} and @code{RIGHT}.") (stems ,ly:grob-array? "An array of stem objects.") (tie ,ly:grob? "A pointer to a @code{Tie} object.") + (ties ,ly:grob-array? "A grob array of @code{Tie} objects.") (tremolo-flag ,ly:grob? "The tremolo object on a stem.") (tuplet-number ,ly:grob? "The number for a bracket.") + (tuplet-start ,boolean? "Is stem at the start of a tuplet?") (tuplets ,ly:grob-array? "An array of smaller tuplet brackets.") + + (vertical-alignment ,ly:grob? "The VerticalAlignment in a System.") + (vertical-skyline-elements ,ly:grob-array? "An array of grobs +used to create vertical skylines.") + + (X-colliding-grobs ,ly:grob-array? "Grobs that can collide +with a self-aligned grob on the X-axis.") + (Y-colliding-grobs ,ly:grob-array? "Grobs that can collide +with a self-aligned grob on the Y-axis.") (X-common ,ly:grob? "Common reference point for axis group.") (Y-common ,ly:grob? "See @code{X-common}.") @@ -1139,6 +1231,11 @@ entries @code{name} and @code{interfaces}.") (minimum-distances ,list? "A list of rods that have the format @code{(@var{obj} . @var{dist})}.") + (note-collision ,ly:grob? "The @code{NoteCollision} object of a +dot column.") + (numbering-assertion-function ,scheme? "The function used to assert +that footnotes are receiving correct automatic numbers.") + (positioning-done ,boolean? "Used to signal that a positioning element did its job. This ensures that a positioning is only done once.") (pure-Y-extent ,number-pair? "The estimated height of a system.") @@ -1149,6 +1246,7 @@ to be within staff spaces.") (quantized-positions ,number-pair? "The beam positions after quanting.") + (script-stencil ,pair? "A pair @code{(@var{type} . @var{arg})} which acts as an index for looking up a @code{Stencil} object.") (shorten ,ly:dimension? "The amount of space that a stem is shortened.