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: David Kastrup
Subject: Re: Getting context-definiton, while being in applyContext
Date: Sun, 18 Nov 2018 19:18:51 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Thomas Morley <address@hidden> writes:

> 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.

Why don't you check whether they have a Staff alias?  Basically if
looking up 'Staff returns the context itself.

-- 
David Kastrup



reply via email to

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