~loic.molinari/+junk/qtdeclarative-shadereffectsource-changes

« back to all changes in this revision

Viewing changes to src/quick/items/qquicktextcontrol_p_p.h

  • Committer: Loïc Molinari
  • Date: 2012-04-21 17:59:51 UTC
  • Revision ID: loic.molinari@canonical.com-20120421175951-bqx68caaf5zrp76l
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
**
 
3
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
 
4
** Contact: http://www.qt-project.org/
 
5
**
 
6
** This file is part of the QtGui module of the Qt Toolkit.
 
7
**
 
8
** $QT_BEGIN_LICENSE:LGPL$
 
9
** GNU Lesser General Public License Usage
 
10
** This file may be used under the terms of the GNU Lesser General Public
 
11
** License version 2.1 as published by the Free Software Foundation and
 
12
** appearing in the file LICENSE.LGPL included in the packaging of this
 
13
** file. Please review the following information to ensure the GNU Lesser
 
14
** General Public License version 2.1 requirements will be met:
 
15
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 
16
**
 
17
** In addition, as a special exception, Nokia gives you certain additional
 
18
** rights. These rights are described in the Nokia Qt LGPL Exception
 
19
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 
20
**
 
21
** GNU General Public License Usage
 
22
** Alternatively, this file may be used under the terms of the GNU General
 
23
** Public License version 3.0 as published by the Free Software Foundation
 
24
** and appearing in the file LICENSE.GPL included in the packaging of this
 
25
** file. Please review the following information to ensure the GNU General
 
26
** Public License version 3.0 requirements will be met:
 
27
** http://www.gnu.org/copyleft/gpl.html.
 
28
**
 
29
** Other Usage
 
30
** Alternatively, this file may be used in accordance with the terms and
 
31
** conditions contained in a signed written agreement between you and Nokia.
 
32
**
 
33
**
 
34
**
 
35
**
 
36
**
 
37
**
 
38
** $QT_END_LICENSE$
 
39
**
 
40
****************************************************************************/
 
41
 
 
42
#ifndef QTEXTCONTROL_P_P_H
 
43
#define QTEXTCONTROL_P_P_H
 
44
 
 
45
//
 
46
//  W A R N I N G
 
47
//  -------------
 
48
//
 
49
// This file is not part of the Qt API.  It exists purely as an
 
50
// implementation detail.  This header file may change from version to
 
51
// version without notice, or even be removed.
 
52
//
 
53
// We mean it.
 
54
//
 
55
 
 
56
#include "QtGui/qtextdocumentfragment.h"
 
57
#include "QtGui/qtextcursor.h"
 
58
#include "QtGui/qtextformat.h"
 
59
#include "QtGui/qabstracttextdocumentlayout.h"
 
60
#include "QtCore/qbasictimer.h"
 
61
#include "QtCore/qpointer.h"
 
62
#include "private/qobject_p.h"
 
63
 
 
64
QT_BEGIN_NAMESPACE
 
65
 
 
66
class QMimeData;
 
67
class QAbstractScrollArea;
 
68
 
 
69
class QQuickTextControlPrivate : public QObjectPrivate
 
70
{
 
71
    Q_DECLARE_PUBLIC(QQuickTextControl)
 
72
public:
 
73
    QQuickTextControlPrivate();
 
74
 
 
75
    bool cursorMoveKeyEvent(QKeyEvent *e);
 
76
 
 
77
    void updateCurrentCharFormat();
 
78
 
 
79
    void init(Qt::TextFormat format = Qt::RichText, const QString &text = QString(),
 
80
              QTextDocument *document = 0);
 
81
    void setContent(Qt::TextFormat format = Qt::RichText, const QString &text = QString(),
 
82
                    QTextDocument *document = 0);
 
83
 
 
84
    void paste(const QMimeData *source);
 
85
 
 
86
    void setCursorPosition(const QPointF &pos);
 
87
    void setCursorPosition(int pos, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor);
 
88
 
 
89
    void repaintCursor();
 
90
    inline void repaintSelection()
 
91
    { repaintOldAndNewSelection(QTextCursor()); }
 
92
    void repaintOldAndNewSelection(const QTextCursor &oldSelection);
 
93
 
 
94
    void selectionChanged(bool forceEmitSelectionChanged = false);
 
95
 
 
96
    void _q_updateCurrentCharFormatAndSelection();
 
97
 
 
98
#ifndef QT_NO_CLIPBOARD
 
99
    void setClipboardSelection();
 
100
#endif
 
101
 
 
102
    void _q_emitCursorPosChanged(const QTextCursor &someCursor);
 
103
 
 
104
    void setBlinkingCursorEnabled(bool enable);
 
105
 
 
106
    void extendWordwiseSelection(int suggestedNewPosition, qreal mouseXPosition);
 
107
    void extendBlockwiseSelection(int suggestedNewPosition);
 
108
 
 
109
    void _q_setCursorAfterUndoRedo(int undoPosition, int charsAdded, int charsRemoved);
 
110
 
 
111
    QRectF cursorRectPlusUnicodeDirectionMarkers(const QTextCursor &cursor) const;
 
112
    QRectF rectForPosition(int position) const;
 
113
    QRectF selectionRect(const QTextCursor &cursor) const;
 
114
    inline QRectF selectionRect() const
 
115
    { return selectionRect(this->cursor); }
 
116
 
 
117
    void keyPressEvent(QKeyEvent *e);
 
118
    void mousePressEvent(QMouseEvent *event, const QPointF &pos);
 
119
    void mouseMoveEvent(QMouseEvent *event, const QPointF &pos);
 
120
    void mouseReleaseEvent(QMouseEvent *event, const QPointF &pos);
 
121
    void mouseDoubleClickEvent(QMouseEvent *event, const QPointF &pos);
 
122
    bool sendMouseEventToInputContext(QMouseEvent *event, const QPointF &pos);
 
123
    void focusEvent(QFocusEvent *e);
 
124
    void inputMethodEvent(QInputMethodEvent *);
 
125
 
 
126
    void activateLinkUnderCursor(QString href = QString());
 
127
 
 
128
    bool isPreediting() const;
 
129
    void commitPreedit();
 
130
    void cancelPreedit();
 
131
 
 
132
    QPointF trippleClickPoint;
 
133
    QPointF mousePressPos;
 
134
 
 
135
    QTextCharFormat lastCharFormat;
 
136
 
 
137
    QTextDocument *doc;
 
138
    QTextCursor cursor;
 
139
    QTextCursor selectedWordOnDoubleClick;
 
140
    QTextCursor selectedBlockOnTrippleClick;
 
141
    QString highlightedAnchor; // Anchor below cursor
 
142
    QString anchorOnMousePress;
 
143
    QString linkToCopy;
 
144
 
 
145
    QBasicTimer cursorBlinkTimer;
 
146
    QBasicTimer trippleClickTimer;
 
147
 
 
148
    int preeditCursor;
 
149
 
 
150
    Qt::TextInteractionFlags interactionFlags;
 
151
 
 
152
    bool cursorOn : 1;
 
153
    bool cursorIsFocusIndicator : 1;
 
154
    bool mousePressed : 1;
 
155
    bool lastSelectionState : 1;
 
156
    bool ignoreAutomaticScrollbarAdjustement : 1;
 
157
    bool overwriteMode : 1;
 
158
    bool acceptRichText : 1;
 
159
    bool cursorVisible : 1; // used to hide the cursor in the preedit area
 
160
    bool hasFocus : 1;
 
161
    bool isEnabled : 1;
 
162
    bool hadSelectionOnMousePress : 1;
 
163
    bool wordSelectionEnabled : 1;
 
164
    bool hasImState : 1;
 
165
 
 
166
    void _q_copyLink();
 
167
    void _q_updateBlock(const QTextBlock &);
 
168
    void _q_documentLayoutChanged();
 
169
};
 
170
 
 
171
QT_END_NAMESPACE
 
172
 
 
173
#endif // QQuickTextControl_P_H