123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #ifndef QTMATERIALTEXTFIELD_INTERNAL_H
- #define QTMATERIALTEXTFIELD_INTERNAL_H
- #include <QStateMachine>
- #include <QtWidgets/QWidget>
- #include "qtmaterialtextfield.h"
- class QPropertyAnimation;
- class QtMaterialTextFieldLabel;
- class QtMaterialTextFieldStateMachine : public QStateMachine
- {
- Q_OBJECT
- Q_PROPERTY(qreal progress WRITE setProgress READ progress)
- public:
- QtMaterialTextFieldStateMachine(QtMaterialTextField *parent);
- ~QtMaterialTextFieldStateMachine();
- void setLabel(QtMaterialTextFieldLabel *label);
- inline void setProgress(qreal progress);
- inline qreal progress() const;
- public slots:
- void setupProperties();
- private:
- Q_DISABLE_COPY(QtMaterialTextFieldStateMachine)
- QtMaterialTextField *const m_textField;
- QState *const m_normalState;
- QState *const m_focusedState;
- QtMaterialTextFieldLabel *m_label;
- QPropertyAnimation *m_offsetAnimation;
- QPropertyAnimation *m_colorAnimation;
- qreal m_progress;
- };
- inline void QtMaterialTextFieldStateMachine::setProgress(qreal progress)
- {
- m_progress = progress;
- m_textField->update();
- }
- inline qreal QtMaterialTextFieldStateMachine::progress() const
- {
- return m_progress;
- }
- class QtMaterialTextFieldLabel : public QWidget
- {
- Q_OBJECT
- Q_PROPERTY(qreal scale WRITE setScale READ scale)
- Q_PROPERTY(QPointF offset WRITE setOffset READ offset)
- Q_PROPERTY(QColor color WRITE setColor READ color)
- public:
- QtMaterialTextFieldLabel(QtMaterialTextField *parent);
- ~QtMaterialTextFieldLabel();
- inline void setScale(qreal scale);
- inline qreal scale() const;
- inline void setOffset(const QPointF &pos);
- inline QPointF offset() const;
- inline void setColor(const QColor &color);
- inline QColor color() const;
- protected:
- void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
- private:
- Q_DISABLE_COPY(QtMaterialTextFieldLabel)
- QtMaterialTextField *const m_textField;
- qreal m_scale;
- qreal m_posX;
- qreal m_posY;
- QColor m_color;
- };
- inline void QtMaterialTextFieldLabel::setScale(qreal scale)
- {
- m_scale = scale;
- update();
- }
- inline qreal QtMaterialTextFieldLabel::scale() const
- {
- return m_scale;
- }
- inline void QtMaterialTextFieldLabel::setOffset(const QPointF &pos)
- {
- m_posX = pos.x();
- m_posY = pos.y();
- update();
- }
- inline QPointF QtMaterialTextFieldLabel::offset() const
- {
- return QPointF(m_posX, m_posY);
- }
- inline void QtMaterialTextFieldLabel::setColor(const QColor &color)
- {
- m_color = color;
- update();
- }
- inline QColor QtMaterialTextFieldLabel::color() const
- {
- return m_color;
- }
- #endif // QTMATERIALTEXTFIELD_INTERNAL_H
|