27class QQuickMaterialTextContainer :
public QQuickPaintedItem
30 Q_PROPERTY(
bool filled READ isFilled WRITE setFilled FINAL)
31 Q_PROPERTY(
bool controlHasActiveFocus READ controlHasActiveFocus
32 WRITE setControlHasActiveFocus NOTIFY controlHasActiveFocusChanged FINAL)
33 Q_PROPERTY(QColor fillColor READ fillColor WRITE setFillColor FINAL)
34 Q_PROPERTY(QColor outlineColor READ outlineColor WRITE setOutlineColor FINAL)
35 Q_PROPERTY(QColor focusedOutlineColor READ focusedOutlineColor WRITE setFocusedOutlineColor FINAL)
36 Q_PROPERTY(qreal focusAnimationProgress READ focusAnimationProgress WRITE setFocusAnimationProgress FINAL)
37 Q_PROPERTY(qreal placeholderTextWidth READ placeholderTextWidth WRITE setPlaceholderTextWidth FINAL)
38 Q_PROPERTY(PlaceHolderHAlignment placeholderTextHAlign READ placeholderTextHAlign WRITE setPlaceholderTextHAlign FINAL)
39 Q_PROPERTY(
bool controlHasText READ controlHasText WRITE setControlHasText NOTIFY controlHasTextChanged FINAL)
40 Q_PROPERTY(
bool placeholderHasText READ placeholderHasText WRITE setPlaceholderHasText NOTIFY placeholderHasTextChanged FINAL)
41 Q_PROPERTY(
int horizontalPadding READ horizontalPadding WRITE setHorizontalPadding NOTIFY horizontalPaddingChanged FINAL)
42 QML_NAMED_ELEMENT(MaterialTextContainer)
43 QML_ADDED_IN_VERSION(6, 5)
46 explicit QQuickMaterialTextContainer(QQuickItem *parent =
nullptr);
48 enum PlaceHolderHAlignment {
49 AlignLeft = Qt::AlignLeft,
50 AlignRight = Qt::AlignRight,
51 AlignHCenter = Qt::AlignHCenter,
52 AlignJustify = Qt::AlignJustify
54 Q_ENUM(PlaceHolderHAlignment)
56 bool isFilled()
const;
57 void setFilled(
bool filled);
59 QColor fillColor()
const;
60 void setFillColor(
const QColor &fillColor);
62 QColor outlineColor()
const;
63 void setOutlineColor(
const QColor &outlineColor);
65 QColor focusedOutlineColor()
const;
66 void setFocusedOutlineColor(
const QColor &focusedOutlineColor);
68 qreal focusAnimationProgress()
const;
69 void setFocusAnimationProgress(qreal progress);
71 qreal placeholderTextWidth()
const;
72 void setPlaceholderTextWidth(qreal placeholderTextWidth);
74 bool controlHasActiveFocus()
const;
75 void setControlHasActiveFocus(
bool controlHasActiveFocus);
77 bool controlHasText()
const;
78 void setControlHasText(
bool controlHasText);
80 bool placeholderHasText()
const;
81 void setPlaceholderHasText(
bool placeholderHasText);
83 int horizontalPadding()
const;
84 void setHorizontalPadding(
int horizontalPadding);
86 void paint(QPainter *painter) override;
88 PlaceHolderHAlignment placeholderTextHAlign()
const;
89 void setPlaceholderTextHAlign(PlaceHolderHAlignment placeHolderTextHAlign);
92 void animateChanged();
93 void controlHasActiveFocusChanged();
94 void controlHasTextChanged();
95 void placeholderHasTextChanged();
96 void horizontalPaddingChanged();
99 bool shouldAnimateOutline()
const;
101 QQuickItem *textControl()
const;
102 void controlGotActiveFocus();
103 void controlLostActiveFocus();
105 void updateFocusAnimation(
bool createIfNeeded =
false);
107 void componentComplete() override;
110 QColor m_outlineColor;
111 QColor m_focusedOutlineColor;
112 qreal m_focusAnimationProgress = 0;
113 qreal m_placeholderTextWidth = 0;
114 bool m_filled =
false;
115 bool m_controlHasActiveFocus =
false;
116 bool m_controlHasText =
false;
117 bool m_placeholderHasText =
false;
118 int m_horizontalPadding = 0;
119 PlaceHolderHAlignment m_placeholderTextHAlign;
120 QPointer<QPropertyAnimation> m_focusAnimation;