Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qwidgettextcontrol_p_p.h
Go to the documentation of this file.
1// Copyright (C) 2019 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QWIDGETTEXTCONTROL_P_P_H
5#define QWIDGETTEXTCONTROL_P_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtWidgets/private/qtwidgetsglobal_p.h>
19#include "QtGui/qtextdocumentfragment.h"
20#include "QtGui/qtextcursor.h"
21#include "QtGui/qtextformat.h"
22#include "QtGui/qtextobject.h"
23#if QT_CONFIG(menu)
24#include "QtWidgets/qmenu.h"
25#endif
26#include "QtGui/qabstracttextdocumentlayout.h"
27#include "QtCore/qbasictimer.h"
28#include "QtCore/qpointer.h"
29#include "private/qobject_p.h"
30
31QT_REQUIRE_CONFIG(widgettextcontrol);
32
34
35class QMimeData;
36class QAbstractScrollArea;
37
39{
40public:
41 Q_DECLARE_PUBLIC(QWidgetTextControl)
42
44
46
48
49 void indent();
50 void outdent();
51
52 void gotoNextTableCell();
54
56
58 QTextDocument *document = nullptr);
60 QTextDocument *document = nullptr);
61 void startDrag();
62
63 void paste(const QMimeData *source);
64
65 void setCursorPosition(const QPointF &pos);
67
68 void repaintCursor();
71 void repaintOldAndNewSelection(const QTextCursor &oldSelection);
72
73 void selectionChanged(bool forceEmitSelectionChanged = false);
74
76
77#ifndef QT_NO_CLIPBOARD
79#endif
80
81 void _q_emitCursorPosChanged(const QTextCursor &someCursor);
82 void _q_contentsChanged(int from, int charsRemoved, int charsAdded);
83
84 void setCursorVisible(bool visible);
87
88 void extendWordwiseSelection(int suggestedNewPosition, qreal mouseXPosition);
89 void extendBlockwiseSelection(int suggestedNewPosition);
90
91 void _q_deleteSelected();
92
93 void _q_setCursorAfterUndoRedo(int undoPosition, int charsAdded, int charsRemoved);
94
98 inline QRectF selectionRect() const
99 { return selectionRect(this->cursor); }
100
101 QString anchorForCursor(const QTextCursor &anchor) const;
102
103 void keyPressEvent(QKeyEvent *e);
105 Qt::KeyboardModifiers modifiers,
106 Qt::MouseButtons buttons,
107 const QPoint &globalPos);
109 Qt::KeyboardModifiers modifiers,
110 Qt::MouseButtons buttons,
111 const QPoint &globalPos);
113 Qt::KeyboardModifiers modifiers,
114 Qt::MouseButtons buttons,
115 const QPoint &globalPos);
117 Qt::KeyboardModifiers modifiers,
118 Qt::MouseButtons buttons,
119 const QPoint &globalPos);
121 const QPointF &pos,
122 Qt::KeyboardModifiers modifiers,
123 Qt::MouseButtons buttons,
124 const QPoint &globalPos);
125 void contextMenuEvent(const QPoint &screenPos, const QPointF &docPos, QWidget *contextWidget);
126 void focusEvent(QFocusEvent *e);
127#ifdef QT_KEYPAD_NAVIGATION
128 void editFocusEvent(QEvent *e);
129#endif
130 bool dragEnterEvent(QEvent *e, const QMimeData *mimeData);
131 void dragLeaveEvent();
132 bool dragMoveEvent(QEvent *e, const QMimeData *mimeData, const QPointF &pos);
133 bool dropEvent(const QMimeData *mimeData, const QPointF &pos, Qt::DropAction dropAction, QObject *source);
134
136
138
139#if QT_CONFIG(tooltip)
140 void showToolTip(const QPoint &globalPos, const QPointF &pos, QWidget *contextWidget);
141#endif
142
143 bool isPreediting() const;
144 void commitPreedit();
145
148
155
157
158 Qt::TextInteractionFlags interactionFlags;
159
163
165
167
170 QPointer<QWidget> contextWidget;
171
174
176
179
182
184 bool hideCursor; // used to hide the cursor in the preedit area
185
186 QList<QAbstractTextDocumentLayout::Selection> extraSelections;
187
190#ifdef QT_KEYPAD_NAVIGATION
191 bool hasEditFocus;
192#endif
194
195 QString highlightedAnchor; // Anchor below cursor
199
202
204
206 void _q_copyLink();
207 void _q_updateBlock(const QTextBlock &);
209};
210
212
213#endif // QWidgetTextControl_P_H
\inmodule QtCore
Definition qbasictimer.h:18
\inmodule QtCore
Definition qcoreevent.h:45
Type
This enum type defines the valid event types in Qt.
Definition qcoreevent.h:51
The QFocusEvent class contains event parameters for widget focus events.
Definition qevent.h:470
The QInputMethodEvent class provides parameters for input method events.
Definition qevent.h:625
The QKeyEvent class describes a key event.
Definition qevent.h:424
\inmodule QtCore
Definition qmimedata.h:16
\inmodule QtCore
Definition qobject.h:103
The QPalette class contains color groups for each widget state.
Definition qpalette.h:19
\inmodule QtCore\reentrant
Definition qpoint.h:217
\inmodule QtCore\reentrant
Definition qpoint.h:25
\inmodule QtCore\reentrant
Definition qrect.h:484
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\reentrant
\reentrant \inmodule QtGui
Definition qtextcursor.h:30
MoveMode
\value MoveAnchor Moves the anchor to the same position as the cursor itself.
Definition qtextcursor.h:47
\reentrant \inmodule QtGui
void _q_updateBlock(const QTextBlock &)
void mouseReleaseEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPoint &globalPos)
void setCursorVisible(bool visible)
void paste(const QMimeData *source)
QList< QAbstractTextDocumentLayout::Selection > extraSelections
void _q_contentsChanged(int from, int charsRemoved, int charsAdded)
void setContent(Qt::TextFormat format=Qt::RichText, const QString &text=QString(), QTextDocument *document=nullptr)
QRectF selectionRect(const QTextCursor &cursor) const
void setCursorPosition(const QPointF &pos)
Qt::TextInteractionFlags interactionFlags
void contextMenuEvent(const QPoint &screenPos, const QPointF &docPos, QWidget *contextWidget)
void selectionChanged(bool forceEmitSelectionChanged=false)
void repaintOldAndNewSelection(const QTextCursor &oldSelection)
void extendWordwiseSelection(int suggestedNewPosition, qreal mouseXPosition)
void _q_emitCursorPosChanged(const QTextCursor &someCursor)
bool dragEnterEvent(QEvent *e, const QMimeData *mimeData)
bool sendMouseEventToInputContext(QEvent *e, QEvent::Type eventType, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPoint &globalPos)
void init(Qt::TextFormat format=Qt::RichText, const QString &text=QString(), QTextDocument *document=nullptr)
QRectF rectForPosition(int position) const
void setBlinkingCursorEnabled(bool enable)
bool cursorMoveKeyEvent(QKeyEvent *e)
QRectF cursorRectPlusUnicodeDirectionMarkers(const QTextCursor &cursor) const
QString anchorForCursor(const QTextCursor &anchor) const
void append(const QString &text, Qt::TextFormat format=Qt::AutoText)
bool dragMoveEvent(QEvent *e, const QMimeData *mimeData, const QPointF &pos)
void inputMethodEvent(QInputMethodEvent *)
void activateLinkUnderCursor(QString href=QString())
void _q_setCursorAfterUndoRedo(int undoPosition, int charsAdded, int charsRemoved)
void mousePressEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPoint &globalPos)
bool dropEvent(const QMimeData *mimeData, const QPointF &pos, Qt::DropAction dropAction, QObject *source)
void mouseMoveEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPoint &globalPos)
void extendBlockwiseSelection(int suggestedNewPosition)
void mouseDoubleClickEvent(QEvent *e, Qt::MouseButton button, const QPointF &pos, Qt::KeyboardModifiers modifiers, Qt::MouseButtons buttons, const QPoint &globalPos)
The QWidget class is the base class of all user interface objects.
Definition qwidget.h:99
EGLImageKHR int int EGLuint64KHR * modifiers
QString text
QPushButton * button
[2]
Combined button and popup list for selecting options.
MouseButton
Definition qnamespace.h:56
TextFormat
@ RichText
@ AutoText
DropAction
GLenum mode
GLboolean enable
GLint GLsizei GLsizei GLenum format
GLsizei GLsizei GLchar * source
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
#define QT_REQUIRE_CONFIG(feature)
double qreal
Definition qtypes.h:187
QMimeData * mimeData