aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/util/qquicktextselection_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/util/qquicktextselection_p.h')
-rw-r--r--src/quick/util/qquicktextselection_p.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/quick/util/qquicktextselection_p.h b/src/quick/util/qquicktextselection_p.h
new file mode 100644
index 0000000000..85feb9a5d8
--- /dev/null
+++ b/src/quick/util/qquicktextselection_p.h
@@ -0,0 +1,80 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef QQUICKTEXTSELECTION_H
+#define QQUICKTEXTSELECTION_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <private/qtquickglobal_p.h>
+
+#include <QtQuick/qquicktextdocument.h>
+
+#include <QtQml/qqml.h>
+
+#include <QtGui/qtextcursor.h>
+
+QT_BEGIN_NAMESPACE
+
+class QFont;
+class QQuickTextControl;
+
+class Q_QUICK_EXPORT QQuickTextSelection : public QObject
+{
+ Q_OBJECT
+
+ Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged FINAL)
+ Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged FINAL)
+ Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged FINAL)
+ Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment NOTIFY alignmentChanged FINAL)
+
+ QML_ANONYMOUS
+ QML_ADDED_IN_VERSION(6, 7)
+
+public:
+ explicit QQuickTextSelection(QObject *parent = nullptr);
+
+ QString text() const;
+ void setText(const QString &text);
+
+ QFont font() const;
+ void setFont(const QFont &font);
+
+ QColor color() const;
+ void setColor(QColor color);
+
+ Qt::Alignment alignment() const;
+ void setAlignment(Qt::Alignment align);
+
+Q_SIGNALS:
+ void textChanged();
+ void fontChanged();
+ void colorChanged();
+ void alignmentChanged();
+
+private:
+ QTextCursor cursor() const;
+ void updateFromCharFormat(const QTextCharFormat &fmt);
+ void updateFromBlockFormat();
+
+private:
+ QTextCursor m_cursor;
+ QTextCharFormat m_charFormat;
+ QTextBlockFormat m_blockFormat;
+ QQuickTextControl *m_control = nullptr;
+};
+
+QT_END_NAMESPACE
+
+QML_DECLARE_TYPE(QQuickTextSelection)
+
+#endif // QQUICKTEXTSELECTION_H