lilypond-user
[Top][All Lists]
Advanced

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

Re: Getting context-definiton, while being in applyContext


From: Thomas Morley
Subject: Re: Getting context-definiton, while being in applyContext
Date: Sun, 18 Nov 2018 19:05:21 +0100

Am So., 18. Nov. 2018 um 18:23 Uhr schrieb Thomas Morley
<address@hidden>:
>
> Hi,
>
> consider the code below. I'd like to restrict usage to Staff-like
> contexts, i.e. Staff, Tab- and DrumStaff, etc would be ok, but
> container-contexts like StaffGroup, etc should lead to return '().
>
> Pseudo-code:
>
> \new Staff(Group)
>   \with {
>     \applyContext
>      #(lambda (context)
>        (if <condition>
>            ;; Do something, if we are in a Staff-like context
>            ;;   Multiple Bottom-contexts may happen
>            (lambda (x) ...)
>            ;; Do nothing if we are are in container-contexts like ChoirStaff,
>            ;; StaffGroup, etc
>            '()
>        )
>   }
> { c''1 }
>
> I thought the <condition> could be "Do I have the Staff_symbol_engraver?"
> Though, how to code?
>     \applyContext
>      #(lambda (context)
>        (ly:context-def-lookup context 'consists))
> does not work, because 'context' is not a context-definition.
>
> Any hint how to proceed would be great.
>
>
> Thanks,
>   Harm

To answer my own question
(ly:output-find-context-def $defaultlayout (ly:context-name context))
will return an alist of context-defs for current context and all the aliases.

To checking for the engraver in the relevant context-def is trivial now.

Cheers,
  Harm



reply via email to

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