I thought I’d post this patch which contains my work so far.
This patch contains most of the classes I outlined in my design. It will do very simple animation of lengths using a very limited subset of timing specifiers. Please don’t look at the code in nsSVGLength and nsSVGAnimatedLength. It’s just a hack to get it to work while I wait to hear from others how this should be done in the end. Probably the implementation I included in the previous patch was better.
I wouldn’t really recommend applying it because it also contain’s tor’s patch for bug 301628 but along the way I’ve had to merge it with recent <textPath> and events checkins and I’ve possibly broken something along the way. So you’re better off just to leave it until bug 301628 gets checked-in and I re-create the patch.
If you’re feeling brave however, you’ll probably want to apply it from /mozilla and run:
patch -p 3 -u -N < smil-anim-2005-08-29-1947.patch
(I’ll fix the absolute paths someday so you don’t need
-p 3). You’ll need to add
--enable-smil to your
.mozconfig and then do a full build. If you want to try just doing a minimal re-build, the following might work:
mozilla> ./configure (to re-create autoconf.mk, although this will have the effect of touching all the Makefiles meaning that when you run
make libs later on it will take a while. You might want to just try and patch up autoconf.mk yourself).
mozilla/dom/public> make (to export the headers and make the IDL definitions)
mozilla/content/smil/public> make (to export the headers required by nsPresContext.h
mozilla/layout/base> make (to update nsPresContext)
mozilla/dom> make (not sure if this is necessary)
mozilla/layout> make libs
Like I said, you’re probably better off doing a full build, I’m really not sure that the above approach will work. I’ve tried the patch on Windows and Linux and it works for these test cases.
Here’s the patch again: smil-anim-2005-08-29-1947.patch. It’s about 500k.