On 5/22/09 4:46 PM, "Neil Puttock" <n.putt...@gmail.com> wrote:
> 2009/5/20 Francisco Vila <paconet....@gmail.com>:
>> 2009/5/20 Francisco Vila <paconet....@gmail.com>:
>>> The key code is this. Given a (big) amount of time I could figure out
>>> how it works and try to improve it.
>>>
>>> http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=blobdiff;f=lily/system-
>>> start-text.cc;h=c99f150fed;hp=494ab1;hb=b12cf254;hpb=4d0abb92
>>
>> Maybe it's not that easy. If the right padding is intended to put the
>> stencil to the rightmost side, the problem is that the extent of the
>> brace (if any) is unknown at this moment.
>
> The InstrumentName has to be attached to the left edge of the
> VerticalAxisGroup (i.e., the Staff), so the only way to position it is
> to apply padding on its right hand side; this moves it away from the
> system. In order to prevent collisions between instrument names and
> PianoStaff braces, the system start delimiters are added as
> side-support-elements of each InstrumentName, thus leading to a
> variation in support extents depending on where each InstrumentName is
> attached to the system.
>
> I think the simplest way to deal with this is to split it into two parts:
>
> 1. Remove the side-support-elements so every InstrumentName has the
> same alignment anchor in the X-axis (i.e., the left edge of each
> stave).
>
> This is a simple matter of removing the acknowledger for
> system-start-text in the System_start_delimiter_engraver.
>
> 2. Calculate the combined extents of all the system start delimiters
> in a system, then apply an X-offset correction to each InstrumentName.
> This ensures that there wil be no collisions between any
> InstrumentName and SystemStartBrace/Bracket/Bar/Square.
>
> Since we can access the System grob from the InstrumentName (via
> ly:grob-system), it's possible to retrieve the grob-array 'elements
> which will include all the system start delimiter grobs. From the
> array we can cherry pick the delimiters by checking the interfaces
> list for system-start-delimiter-interface. By uniting their
> horizontal extents it's possible to get an offset which represents the
> width of the set of delimiters attached to the most deeply nested
> stave.
>
> I've attached a proof of concept patch together with an image
> demonstrating left-, centre- and right-aligned instrument names.
The image looks great!
As far as the patch goes, I'm not sure why it's a proof-of-concept patch
instead of a real patch. It looked fine to me. But you usually examine
things with a finer-toothed comb than I do.
Carl
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel