plasma-framework/animations/pulser.h
Adenilson Cavalcanti Da Silva 66dff7cf72 Unbreaking pulse animation. It will handle the case where there
is no 'shadow' widget (and thus not set the widget itself as
its parent).

By connecting a slot to the signal emited by animation end, it will
also restore original opacity back.

TODO: instead of a copy of object, the shadow should be an image
where the animated widget was painted. This will solve a lot
of issues and make this class easier to use.


svn path=/trunk/KDE/kdelibs/; revision=1036351
2009-10-17 05:17:05 +00:00

66 lines
1.7 KiB
C++

/* Copyright (C) 2009 Adenilson Cavalcanti <cavalcantii@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as
* published by the Free Software Foundation; either version 2, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef PLASMA_ANIMATIONS_PULSE_H
#define PLASMA_ANIMATIONS_PULSE_H
#include <plasma/animations/animation.h>
#include <plasma/plasma_export.h>
namespace Plasma
{
class PLASMA_EXPORT PulseAnimation : public Animation
{
Q_OBJECT
public:
PulseAnimation();
~PulseAnimation();
void updateGeometry(QRectF updated, qreal zCoordinate = 0, qreal scale = 1.5);
void setCopy(QGraphicsWidget *copy);
public Q_SLOTS:
void start();
void resetPulser();
protected:
virtual QAbstractAnimation* render(QObject* parent = 0);
private:
void createAnimation(qreal _duration = 500, qreal _scale = 1.5);
QAbstractAnimation *animation;
QGraphicsWidget *under;
QRectF *pulseGeometry;
qreal zvalue, mscale, mopacity;
QPropertyAnimation *opacityAnimation;
QPropertyAnimation *geometryAnimation;
QPropertyAnimation *scaleAnimation;
};
}
#endif