2009-10-15 21:53:49 +02:00
|
|
|
/***********************************************************************/
|
|
|
|
/* rotation.h */
|
|
|
|
/* */
|
|
|
|
/* Copyright(C) 2009 Igor Trindade Oliveira <igor.oliveira@indt.org.br>*/
|
|
|
|
/* Copyright(C) 2009 Adenilson Cavalcanti <adenilson.silva@idnt.org.br>*/
|
|
|
|
/* */
|
|
|
|
/* This library is free software; you can redistribute it and/or */
|
|
|
|
/* modify it under the terms of the GNU Lesser General Public */
|
|
|
|
/* License as published by the Free Software Foundation; either */
|
|
|
|
/* version 2.1 of the License, or (at your option) any later version. */
|
|
|
|
/* */
|
|
|
|
/* This library 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 */
|
|
|
|
/* Lesser General Public License for more details. */
|
|
|
|
/* */
|
|
|
|
/* You should have received a copy of the GNU Lesser General Public */
|
|
|
|
/* License along with this library; if not, write to the Free Software */
|
|
|
|
/* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA */
|
|
|
|
/* 02110-1301 USA */
|
|
|
|
/***********************************************************************/
|
|
|
|
|
2009-11-17 02:36:37 +01:00
|
|
|
#ifndef ROTATION_P_H
|
|
|
|
#define ROTATION_P_H
|
|
|
|
|
2009-10-15 21:53:49 +02:00
|
|
|
#include <plasma/plasma_export.h>
|
|
|
|
#include <plasma/animations/animation.h>
|
|
|
|
|
|
|
|
#include <QVector3D>
|
|
|
|
|
|
|
|
namespace Plasma {
|
|
|
|
|
2009-10-16 21:52:43 +02:00
|
|
|
class RotationAnimationPrivate;
|
|
|
|
|
2009-10-22 06:08:31 +02:00
|
|
|
class RotationAnimation : public Animation
|
2009-10-15 21:53:49 +02:00
|
|
|
{
|
|
|
|
|
2009-10-22 17:35:08 +02:00
|
|
|
Q_OBJECT
|
|
|
|
Q_PROPERTY(Qt::Axis axis READ axis WRITE setAxis)
|
|
|
|
Q_PROPERTY(qint8 reference READ reference WRITE setReference)
|
|
|
|
Q_PROPERTY(qreal angle READ angle WRITE setAngle)
|
|
|
|
|
|
|
|
public:
|
2009-12-03 20:30:02 +01:00
|
|
|
RotationAnimation(QObject *parent = 0,
|
|
|
|
const qint8 &reference = Up,
|
2009-10-22 17:35:08 +02:00
|
|
|
const Qt::Axis &axis = Qt::ZAxis,
|
|
|
|
const qreal &angle = 180);
|
|
|
|
|
|
|
|
~RotationAnimation();
|
|
|
|
|
|
|
|
QPropertyAnimation* render(QObject* parent = 0);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* get animation rotation axis (e.g. YAxis, ZAxis, XAxis)
|
|
|
|
*/
|
|
|
|
Qt::Axis axis() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* set animation rotation axis
|
|
|
|
* @arg axis Rotation (e.g. YAxis, ZAxis, XAxis)
|
|
|
|
*/
|
|
|
|
void setAxis(const Qt::Axis &axis);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Rotation reference (e.g. Center, Up, Down, Left, Right) can
|
|
|
|
* be combined (i.e. Center|Up)
|
|
|
|
*/
|
|
|
|
qint8 reference() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set rotation reference (e.g. Center, Up, Down, Left, Right) can
|
|
|
|
* be combined (i.e. Center|Up)
|
|
|
|
* @arg reference The reference
|
|
|
|
*/
|
|
|
|
void setReference(const qint8 &reference);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Animation rotation angle (e.g. 45, 180, etc)
|
|
|
|
*/
|
|
|
|
qreal angle() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set animation rotation angle (e.g. 45, 180, etc)
|
|
|
|
* @arg angle The angle
|
|
|
|
*/
|
|
|
|
void setAngle(const qreal &angle);
|
|
|
|
|
2009-12-03 20:30:02 +01:00
|
|
|
void setWidgetToAnimate(QGraphicsWidget *widget);
|
2009-10-22 17:35:08 +02:00
|
|
|
|
2009-12-04 21:49:09 +01:00
|
|
|
protected:
|
|
|
|
void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState);
|
|
|
|
void updateCurrentTime(int currentTime);
|
|
|
|
|
2009-12-03 20:30:02 +01:00
|
|
|
private:
|
2009-10-16 21:52:43 +02:00
|
|
|
RotationAnimationPrivate *const d;
|
2009-10-15 21:53:49 +02:00
|
|
|
};
|
|
|
|
} // Plasma
|
2009-11-17 02:36:37 +01:00
|
|
|
|
|
|
|
#endif
|