Hi Thomas, others.
I'm starting to implement animation. At the moment I'm writing the
override style code so that the simple animations I have got so far will
work on this rather than modifying the computed style map directly.
What I'm wondering is how I should notify the CSSEngine that override
style map has changed so it can rerun the cascade. In
SVGStylableElement I have a class OverrideStyleDeclaration, modelled
after SVGStylableElement.StyleDeclaration. Each SVGStylableElement has
an object of this class which is returned from
SVGOMDocument.getOverrideStyle. I think there are a couple of ways I
could notify the CSSEngine that the override style was modified.
1. Make CSSEngine.invalidateProperties public and just call it
directly. This is all I need the CSSEngine to do, so it would be
easy for me to call it from the OverrideStyleDeclaration
{textChanged,propertyRemoved,propertyChanged} methods.
2. When the the CSSEngine is associated with the SVGOMDocument it
registers an event listener with the document which will get
fired when any override stylesheet in that document is modified.
Maintaining a list of listeners here seems a bit of waste though
when the CSSEngine is going to be the only class interested in the
events.
3. Something I haven't thought of. :)
Any suggestions? After typing my thoughts down I think 2 isn't such a
bad idea.
Also, in CSSEngine the "MainPropertyReciever" interface should be
"MainPropertyReceiver". That interface's method also has a typo --
"setMainPoperty" should be "setMainProperty".
I'll submit a patch when I've finished the override style stuff (without
the animation support, which'll take a bit longer).
Cameron
--
Cameron McCormack
| Web: http://mcc.id.au/
| ICQ: 26955922
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]