Carl Sorensen <c_soren...@byu.edu> writes: > On 11/19/09 5:20 PM, "David Kastrup" <d...@gnu.org> wrote: > >> >> >> I have no idea what I am doing here. In particular not with the >> \override, and the set-object-property!. Can somebody explain to me >> just what data structures I happen to manipulate, and how a user is >> actually _supposed_ to be mangling them? >> > >> \override Staff.TextScript #'accordion #'symbol = #$accordion > > I have no idea what you're trying to do here.
Neither do I, as I said. Different Staffs can use different types of accordion definitions. So I make a command for setting the type of accordion symbol to use that works staff-local. Now markup objects seemingly have their properties stuck in TextScript, and I poke TextScript with a stick until it appears to do what I want. Since I have no idea what I am doing, the question is whether this is a good idea. > TextScript is a layout object that has certain properties. You can > find out about the standard settings and the interfaces in the > internals reference, at 3.1.111. Yes, but that is no fun since I need _new_ internals local to the staff. > As far as I can see, there is no interface that has an 'accordion > property, so this \override doesn't make much sense. > > However, because there is no error given when an undefined property is > set, the \override will be added to the context anyway. There would be a warning given. I squelch the warning with #(set-object-property! 'accordion 'backend-type? list?) I have no idea why I do this: this basically just mimics a side-effect from Lilypond-internal code working off internal property tables that is not callable from user namespace. It is not good code to poke internals like that, but I don't see a user accessible interface for doing the equivalent. > If you are just creating a markup for accordion, the grob is a > TextScript object, and nothing more. > > If you want to create accordion grobs (which will included a markup > for display, plus other stuff happening in the music), then you will > need to create an accordion engraver. I am not sure yet about just what I will need to create for what particular task. I am trying to solve subtasks, even if it means my level of understanding forces me to take a crowbar. But a working example is a good way of asking people how things should be done properly. Or at least that was the idea. -- David Kastrup _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel