- From: Ian Hickson <ian@hixie.ch>
- Date: Thu, 15 Feb 2007 01:27:41 +0000 (UTC)
- To: Cameron McCormack <cam@mcc.id.au>
- Cc: public-appformats@w3.org
- Message-ID: <Pine.LNX.4.62.0702150124400.4112@dhalsim.dreamhost.com>
On Thu, 15 Feb 2007, Cameron McCormack wrote: > > Ian Hickson: > > Assuming you mean the centering one, it was real, but it can be addressed > > much more easily using the mechanism I gave (center the group, then offset > > the group by half the bounding box). > > That does require the function to modify the structure of the document > though, which I think is sub-optimal (other behaviour in the document > may rely on the structure). Nah, just use an XBL binding. :-) That's exactly what XBL is for -- doing things that require modifiying the structure, without modifying the structure. Although, if you're mutating the DOM anyway (which your example was doing, IIRC), I don't see why modifiying the structure is a problem. And in SVG, which is presentational by nature, modifying the DOM is not a problem like it is in (say) HTML, where you want to avoid poluting the DOM with semantic-free <div> elements. > > > It seems reasonable to me. The solution you gave doesn’t address > > > this because the containing bound element may not be under my > > > control (it was written by someone else) and thus may not implement > > > .nearestViewportElement itself. > > > > So extend it, and implement "nearestViewportElement". XBL gives you > > the tools to do this -- you could even simply write a binding that > > applied to all elements that implemented this property. > > Ah that would avoid the problem. Something like: > > <binding element="*"> > <template> > <inherited/> > </template> No need for a template. > <implementation> > ({ > get nearestViewportElement() { > var bb = this.baseBinding; > if (bb && bb.nearestViewportElement) { > return bb.nearestViewportElement; > } > // normal nearestViewportElement implementation here > } > }) > </implementation> > </binding> For example, yeah. > Might be a bit dodgy in a CDF situation, having SVG interfaces > implemented on every element, but I guess that's unavoidable. I thought the whole point was that you wanted this implemented on every non-SVG element. But in either case that doesn't seem like a big problem. -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Thursday, 15 February 2007 01:28:00 UTC