[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Set a property in before-line-breaking
From: |
Urs Liska |
Subject: |
Set a property in before-line-breaking |
Date: |
Tue, 4 Apr 2017 13:48:03 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
Hi,
one more time a question about the order of operations.
In the following MWE I use ly:grob-set-property! in the
before-line-breaking callback to set the X-offset property of the
NoteHead's parent NoteColumn.
This has the expected effect and visually offsets the note column
accordingly, but when I read out the property with ly:grob-property in
the after-line-breaking callback (the stencil callback that I actually
use behaves the same) it returns '(), i.e. "unset".
\version "2.19.54"
{
\override NoteHead.before-line-breaking =
#(lambda (nh)
(let ((nc (ly:grob-parent nh Y)))
(ly:grob-set-property! nc 'X-offset 4)))
\override NoteHead.after-line-breaking =
#(lambda (nh)
(let ((nc (ly:grob-parent nh Y)))
(ly:message "offset : ~a" (ly:grob-property nc 'X-offset))))
c'1
}
I'm somewhat confused that at the later point in time the property
seemingly isn't present although it obviously does what I expect it to do.
The background is: I need to offset the note column to make space for an
object left to it. As I can't do that automatically I want to write out
a message telling the user to what value he has to set the x offset.
This setting of the x offset happens during before-line-breaking, they
can't use \override in the input files. With the behaviour as I see it I
can only say "please add N to your current X-offset" (instead of "set
X-offset to M").
Any explanations or suggestions?
TIA
Urs
--
address@hidden
https://openlilylib.org
http://lilypondblog.org
- Set a property in before-line-breaking,
Urs Liska <=