diff --git a/animator.cpp b/animator.cpp index 22e8c4f96..3a4fc0331 100644 --- a/animator.cpp +++ b/animator.cpp @@ -18,6 +18,8 @@ #include "animator.h" +#include + namespace Plasma { @@ -31,11 +33,40 @@ Animator::~Animator() { } -int Animator::appearFrames() +int Animator::frameCount(Plasma::Phase::Animation animation) { + Q_UNUSED(animation) return 0; } +int Animator::elementFrameCount(Plasma::Phase::ElementAnimation animation) +{ + Q_UNUSED(animation) + return 0; +} + +QPixmap Animator::elementAppear(qreal frame, const QPixmap& pixmap) +{ + Q_UNUSED(frame) + Q_UNUSED(pixmap) + return pixmap; +} + +QPixmap Animator::elementDisappear(qreal frame, const QPixmap& pixmap) +{ + Q_UNUSED(frame) + Q_UNUSED(pixmap) + QPixmap alpha(pixmap.size()); + { + QPainter painter(&alpha); + painter.fillRect(alpha.rect(), Qt::transparent); + } + QPixmap pix(pixmap.size()); + pix.setAlphaChannel(alpha); + + return pix; +} + void Animator::appear(qreal frame, QGraphicsItem* item) { Q_UNUSED(frame) @@ -47,11 +78,6 @@ void Animator::appearCompleted(QGraphicsItem* item) Q_UNUSED(item) } -int Animator::disappearFrames() -{ - return 0; -} - void Animator::disappear(qreal frame, QGraphicsItem* item) { Q_UNUSED(frame) @@ -63,11 +89,6 @@ void Animator::disappearCompleted(QGraphicsItem* item) Q_UNUSED(item) } -int Animator::activateFrames() -{ - return 0; -} - void Animator::activate(qreal frame, QGraphicsItem* item) { Q_UNUSED(frame) @@ -79,11 +100,6 @@ void Animator::activateCompleted(QGraphicsItem* item) Q_UNUSED(item) } -int Animator::frameAppearFrames() -{ - return 0; -} - void Animator::frameAppear(qreal frame, QGraphicsItem* item, const QRegion& drawable) { Q_UNUSED(frame) diff --git a/animator.h b/animator.h index cda40bda8..0007831da 100644 --- a/animator.h +++ b/animator.h @@ -21,10 +21,12 @@ #include #include +#include #include #include +#include class QGraphicsItem; @@ -39,19 +41,21 @@ public: explicit Animator(QObject *parent = 0, const QStringList& list = QStringList()); ~Animator(); - virtual int appearFrames(); + virtual int frameCount(Plasma::Phase::Animation); + virtual int elementFrameCount(Plasma::Phase::ElementAnimation); + + virtual QPixmap elementAppear(qreal frame, const QPixmap& pixmap); + virtual QPixmap elementDisappear(qreal frame, const QPixmap& pixmap); + virtual void appear(qreal frame, QGraphicsItem* item); virtual void appearCompleted(QGraphicsItem* item); - virtual int disappearFrames(); virtual void disappear(qreal frame, QGraphicsItem* item); virtual void disappearCompleted(QGraphicsItem* item); - virtual int frameAppearFrames(); virtual void frameAppear(qreal frame, QGraphicsItem* item, const QRegion& drawable); virtual void frameAppearCompleted(QGraphicsItem* item, const QRegion& drawable); - virtual int activateFrames(); virtual void activate(qreal frame, QGraphicsItem* item); virtual void activateCompleted(QGraphicsItem* item);