[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Caches the interior skylines of vertical axis groups and systems. (i
From: |
address@hidden |
Subject: |
Re: Caches the interior skylines of vertical axis groups and systems. (issue 7185044) |
Date: |
Mon, 25 Feb 2013 23:34:47 +0100 |
On 25 févr. 2013, at 16:29, address@hidden wrote:
> On 2013/02/24 16:20:53, mike7 wrote:
>> On 24 févr. 2013, at 17:18, David Kastrup <mailto:address@hidden> wrote:
>
>> > "address@hidden" <mailto:address@hidden> writes:
>> >
>> >> On 24 févr. 2013, at 16:37, mailto:address@hidden wrote:
>> >>
>> >>> On 2013/02/24 13:27:39, mike7 wrote:
>> >>>> On 24 févr. 2013, at 12:40, mailto:address@hidden wrote:
>> >>>
>> >>>>> Stupid question: could you not just check whether
>> >>>>> outside-staff-priority has been set, and if it has, pass the
> buck
>> >>>>> to the right kind of callback automatically? That way, the user
>> >>>>> does not need to meddle with callbacks himself.
>> >>>
>> >>>> Yup, but it'd require creating an Outside_staff_callback engraver
>> >>>> with a call to acknowledge_grob. Calls to acknowledge_grob are
>> >>>> expensive and should be used only if there's no other viable
>> >>>> solution.
>> >>>
>> >>> Why can't the current Y-offset callback check
> outside-staff-priority
>> >>> on the grob? Why would there be a need for an acknowledger?
>> >>
>> >> That's exactly how the new Y-offset callbacks are implemented in
> this
>> >> patch set. The problem is that not all grobs have a Y-offset
>> >> callback.
>> >
>> > Well, something heeded outside-staff-priority previously, apparently
>> > calculating an offset based on it. What happened to it?
>
>> Before, there was a call to translate_axis. It wasn't done as a
>> callback for a Y-offset property but rather a vertical-skylines
>> property for VerticalAxisGroup that called translate_axis many times
>> (follow, in current master,
>> Axis_group_interface::calc_vertical_skylines to
>> avoid_outside_staff_collisions and you'll see how this is done).
>> This makes it impossible to wipe caches and recompute properties
>> with more information. The goal of this patch is to eliminate that
>> call to translate_axis so that the callback(s) for Y-offset
>> calculate the entire offset, which means we can cache and recache
>> pure equivalents.
>
> This is really like pulling teeth. Something _obviously_ consults
> Y-offset, or overriding it with a callback would not have an effect.
> Now said something can also check Y-offset for being unset (presumably
> the default) and outside-staff-priority for being set (the
> non-default) and call up the most likely of the totally dissimilarly
> named callbacks you mention in changes.tely without bothering to say
> which one to choose under what circumstances.
>
> Can you _merge_ those callbacks? Then there is no need to pick one.
>
They are currently merged in that y-aligned-side automatically calls
calc-outside-staff-y-offset at the end. I forget why I didn't merge them
completely - there was a reason at one point, but they may be mergeable. Will
look into it.
> Setting something like outside-staff-priority is still stuff that
> users can comprehend (and that's actually documented in the manuals).
> Having to pick one of several totally differently named callbacks
> without useful documentation is _not_ a user interface.
>
> That's internals.
The goal of the patchset is for all outside-staff grobs to still respond to
outside-staff-priority. Are there any outside-staff grobs (Slur, Script,
TupletBracket, whatever) that currently don't function like they used to in the
given patch set? I didn't find a single one.
>
>> I think the current patch is fine.
>
> It does not have a usable user interface. It is not an option for a
> user to choose between several undocumented callbacks.
>
I will document those two callbacks or the one callback if I merge them. What
I'd appreciate is a list of outside-staff grobs as defined in the documentation
that, with my patch set apply, no longer respond to outside-staff-priority. I
believe that I've covered all the pertinent grobs.
Cheers,
MS