[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-panel-devel
Subject: javascript animations
From: "Aaron J. Seigo" <aseigo () kde ! org>
Date: 2010-04-28 18:14:04
Message-ID: 201004281114.05438.aseigo () kde ! org
[Download RAW message or body]
hi ...
we now have themable animation support in libplasma. one of the things we've
been dreaming of since the original Animator class was born has come true,
though there have been a few twists and turns to get here such as Qt Kinetic
appearing and using Javascript for the theming.
here is how it currently works in trunk:
* a desktop theme can include one or more JS scripts in the animations/
subdirectory. each file can contain multiple animation definitions, each of
which must be registered by calling registerAnimation(String name, Function
func) in the script
* in the theme's metadata.desktop file there is a new section supported:
[Animations]. this group must contain mappings between the script name and the
aimations it contains, e.g.:
[Animations]
stockanims.js=ZoomAnimation,PulseAnimation,RotationAnimation
* fallback themes (aka "theme inheritance") is supported for this
* scripted animation registration is "first come, first serve" so until the
theme is changed, animations can not overwrite each other. this should keep
things a sane (e.g. fallback themes won't overwrite existing anim defs)
* Animator::create(const QString &animationName, QObject *parent = 0) will
attempt to create an appropriate JavascriptAnimation, which is just another
QAbastractAnimation ... well, a Plasma::EasingAnimation. same thing ;)
* Coronas can now map stock animations to each other (e.g. make
"DisappearAnimation" mean "ZoomAnimation") as well map stock animations to js
animations. this means that the appear/disappear of Applets in a Containment
are now back to using the correct semantic animations: Appear and Disappear.
it is up to the Corona subclass to take care of mapping those.
what is left to do:
* allow javascript plasmoids to create and call their own animations from
files in the PlasmoidPackage
* allow Coronas to load their own javascript script files (this will bring
back the applet creation animation in plasma-desktop)
*do an audit of the js API for animations to make sure it does everything we
need/want, such as animation groups
* put js versions of the stock anims in the Air theme to make sure it all
works as expected :)
your feedback is wanted since once 4.5 is out, we'll be "stuck" with the
above.
--
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43
KDE core developer sponsored by Qt Development Frameworks
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic