lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Quick question about grob interfaces


From: David Kastrup
Subject: Re: Quick question about grob interfaces
Date: Sat, 28 Jul 2018 20:28:22 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Han-Wen Nienhuys <address@hidden> writes:

>> On Thu, Jul 26, 2018 at 10:27 PM David Kastrup <address@hidden> wrote:
>>
>>>
>>> Does somebody know the answer to the following question?
>>>
>>> Can a single grob contain the same property via different grob
>>> interfaces, or is the inclusion exclusive, meaning that an
>>> implementation at C++ level would not require working with virtual
>>> inheritance or some equivalent?
>
> The grob-interfaces are a means to group certain functionality (and
> respective properties.). Whether it's OK for two separate pieces code
> to both use the same property depends on the specific case.  I suspect
> this reuse happens a lot for generic properties such as #'dir (or was
> it called #'direction?).

It does not happen at all for either dir or direction.  Here are the
properties that are pulled into grobs more than once via different
interfaces:

Accidental: (avoid-slur)
AccidentalCautionary: (avoid-slur)
AccidentalSuggestion: (avoid-slur avoid-slur slur-padding)
AmbitusAccidental: (avoid-slur)
AmbitusNoteHead: (duration-log)
BalloonTextItem: (text)
BassFigureAlignment: (axes elements)
CombineTextScript: (avoid-slur)
DoublePercentRepeat: (dot-negative-kern slash-negative-kern slope thickness)
DoublePercentRepeatCounter: (dot-negative-kern slash-negative-kern slope 
thickness)
DoubleRepeatSlash: (dot-negative-kern slash-negative-kern slope thickness)
DynamicLineSpanner: (avoid-slur)
DynamicText: (avoid-slur)
DynamicTextSpanner: (text thickness to-barline)
Episema: (thickness to-barline)
Fingering: (avoid-slur)
FootnoteItem: (text)
FootnoteSpanner: (footnote-text spanner-placement text)
Glissando: (thickness to-barline)
InstrumentName: (self-alignment-X self-alignment-Y text)
LigatureBracket: (thickness)
LyricHyphen: (minimum-length)
LyricSpace: (minimum-length)
MultiMeasureRest: (bound-padding minimum-length)
NonMusicalPaperColumn: (X-extent elements horizontal-skylines)
NoteColumn: (X-extent elements horizontal-skylines)
NoteHead: (add-join delta-position duration-log glyph-name thickness)
NoteSpacing: (left-items right-items)
OttavaBracket: (bracket-flare edge-height minimum-length shorten-pair)
PaperColumn: (X-extent elements horizontal-skylines)
PercentRepeat: (minimum-length)
PhrasingSlur: (avoid-slur)
RepeatSlash: (dot-negative-kern slash-negative-kern slope thickness)
Script: (avoid-slur slur-padding)
Slur: (avoid-slur)
SpacingSpanner: (shortest-duration-space spacing-increment)
SpanBar: (glyph-name)
StringNumber: (avoid-slur)
StrokeFinger: (avoid-slur)
TabNoteHead: (duration-log)
TextScript: (avoid-slur)
TextSpanner: (thickness to-barline)
Tie: (avoid-slur)
TrillPitchAccidental: (avoid-slur)
TrillPitchGroup: (padding)
TrillSpanner: (thickness to-barline)
TupletBracket: (thickness)
TupletNumber: (avoid-slur)
VerticalAlignment: (axes elements)
VoiceFollower: (thickness to-barline)
VoltaBracket: (shorten-pair thickness)

avoid-slur certainly seems like the record property here but there are a
few others.

I am not sure that those duplications make all that much sense but
cleaning them up through reorganisation would be quite a bit of work,
too.

-- 
David Kastrup



reply via email to

[Prev in Thread] Current Thread [Next in Thread]