qt-material-widgets/components/flatbutton_internal.h

68 lines
1.9 KiB
C
Raw Normal View History

2016-05-15 07:08:23 +00:00
#ifndef FLATBUTTON_INTERNAL_H
#define FLATBUTTON_INTERNAL_H
2016-05-15 09:17:07 +00:00
#include <QStateMachine>
#include <QColor>
2016-05-28 07:52:03 +00:00
class QPropertyAnimation;
2016-05-15 09:17:07 +00:00
class FlatButton;
class FlatButtonDelegate : public QStateMachine
{
Q_OBJECT
Q_PROPERTY(QColor backgroundColor WRITE setBackgroundColor READ backgroundColor)
2016-05-28 07:52:03 +00:00
Q_PROPERTY(qreal backgroundOpacity WRITE setBackgroundOpacity READ backgroundOpacity)
2016-06-09 08:02:57 +00:00
Q_PROPERTY(qreal haloOpacity WRITE setHaloOpacity READ haloOpacity)
Q_PROPERTY(qreal haloSize WRITE setHaloSize READ haloSize)
Q_PROPERTY(qreal haloScaleFactor WRITE setHaloScaleFactor READ haloScaleFactor)
2016-05-15 09:17:07 +00:00
public:
FlatButtonDelegate(FlatButton *parent);
~FlatButtonDelegate();
void setBackgroundOpacity(qreal opacity);
qreal backgroundOpacity() const;
void setBackgroundColor(const QColor &color);
QColor backgroundColor() const;
2016-06-09 08:02:57 +00:00
void setHaloOpacity(qreal opacity);
qreal haloOpacity() const;
2016-05-28 07:52:03 +00:00
2016-06-09 08:02:57 +00:00
void setHaloSize(qreal size);
qreal haloSize() const;
void setHaloScaleFactor(qreal size);
qreal haloScaleFactor() const;
2016-05-28 07:52:03 +00:00
2016-05-30 16:03:41 +00:00
void updatePalette();
2016-06-09 08:02:57 +00:00
signals:
void pressed();
protected:
bool eventFilter(QObject *watched, QEvent *event);
2016-05-15 09:17:07 +00:00
private:
Q_DISABLE_COPY(FlatButtonDelegate)
2016-06-09 08:02:57 +00:00
void addTransition(QObject *object, const char *signal, QState *fromState, QState *toState);
void addTransition(QObject *object, QEvent::Type eventType, QState *fromState, QState *toState);
void addTransition(QAbstractTransition *transition, QState *fromState, QState *toState);
2016-05-28 07:52:03 +00:00
FlatButton *const button;
QState *const _normalState;
2016-05-28 07:52:03 +00:00
QState *const _normalFocusedState;
2016-05-27 14:12:16 +00:00
QState *const _hoveredState;
2016-05-28 07:52:03 +00:00
QState *const _hoveredFocusedState;
QState *const _pressedState;
qreal _backgroundOpacity;
2016-06-09 08:02:57 +00:00
qreal _haloOpacity;
qreal _haloSize;
qreal _haloScaleFactor;
QColor _backgroundColor;
2016-05-15 09:17:07 +00:00
};
2016-05-15 07:08:23 +00:00
#endif // FLATBUTTON_INTERNAL_H