qskinny/src/controls/QskSkinTransition.h

55 lines
1.0 KiB
C
Raw Normal View History

2017-07-21 18:21:34 +02:00
#ifndef QSK_SKIN_TRANSITION_H
#define QSK_SKIN_TRANSITION_H
2018-08-03 08:15:28 +02:00
#include "QskAspect.h"
2022-03-24 11:17:03 +01:00
#include <memory>
2017-07-21 18:21:34 +02:00
class QskSkin;
2022-03-24 11:17:03 +01:00
class QskAnimationHint;
class QQuickWindow;
2017-07-21 18:21:34 +02:00
class QVariant;
class QSK_EXPORT QskSkinTransition
{
2018-08-03 08:15:28 +02:00
public:
2017-07-21 18:21:34 +02:00
enum Type
{
Color = 1,
Metric = 2,
AllTypes = Color | Metric
};
QskSkinTransition();
virtual ~QskSkinTransition();
void setSourceSkin( QskSkin* );
QskSkin* sourceSkin() const;
void setTargetSkin( QskSkin* );
QskSkin* targetSkin() const;
void setAnimation( QskAnimationHint );
QskAnimationHint animation() const;
void setMask( Type );
Type mask() const;
void process();
static bool isRunning();
2020-12-21 16:06:58 +01:00
static QVariant animatedHint( const QQuickWindow*, QskAspect );
static QVariant animatedGraphicFilter( const QQuickWindow*, int graphicRole );
2017-07-21 18:21:34 +02:00
2018-08-03 08:15:28 +02:00
protected:
virtual void updateSkin( QskSkin*, QskSkin* );
2017-07-21 18:21:34 +02:00
2018-08-03 08:15:28 +02:00
private:
2022-03-24 08:08:40 +01:00
Q_DISABLE_COPY( QskSkinTransition )
2022-03-24 11:17:03 +01:00
class PrivateData;
std::unique_ptr< PrivateData > m_data;
2017-07-21 18:21:34 +02:00
};
#endif