[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