Trevor Bača <trevorb...@gmail.com> writes:

> Hi,
>
> I'd like the left text of red text spanners to be set to "foo", and to set
> the left text of all other text spanners to "bar".
>
> But I misunderstand how to return markup:
>
> %%% BEGIN %%%
>
> \version "2.25.3"
>
> % no left text set
> {
>   \once \override TextSpanner.bound-details.left.text =
>     #(lambda (grob) (if (equal? red (ly:grob-property grob 'color)) "foo"
> "bar"))
>   c'1
>   - \tweak color #red
>   \startTextSpan
>   c'1
>   \stopTextSpan
> }
>
> % no left text set
> {
>   \once \override TextSpanner.bound-details.left.text =
>     #(lambda (grob) (if (equal? red (ly:grob-property grob 'color))
>       (markup "foo")
>       (markup "bar")))
>   c'1
>   - \tweak color #red
>   \startTextSpan
>   c'1
>   \stopTextSpan
> }
>
> %%% END %%%
>
> What's the right way to return markup from a Scheme function?

You are doing fine in that regard, but subproperties don't have callback
evaluation.

-- 
David Kastrup

Reply via email to