plasma-framework/animations/rotation_p.h
Igor Trindade Oliveira dc184742b9 "remove private class: the include main already is private"
svn path=/trunk/KDE/kdelibs/; revision=1060658
2009-12-09 14:35:27 +00:00

99 lines
3.2 KiB
C++

/***********************************************************************/
/* 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 */
/***********************************************************************/
#ifndef ROTATION_P_H
#define ROTATION_P_H
#include <plasma/animations/animation.h>
#include <plasma/plasma_export.h>
#include <QVector3D>
class QGraphicsRotation;
namespace Plasma {
class RotationAnimation : public Animation
{
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:
RotationAnimation(QObject *parent = 0,
const qint8 &reference = Up,
const Qt::Axis &axis = Qt::ZAxis,
const qreal &angle = 180);
~RotationAnimation();
/**
* 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);
protected:
void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState);
void updateCurrentTime(int currentTime);
private:
QGraphicsRotation *m_rotation;
qreal m_angle;
Qt::Axis m_axis;
qint8 m_reference;
};
} // Plasma
#endif