src/gui/text/qtextcursor.h
changeset 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 /****************************************************************************
       
     2 **
       
     3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     4 ** All rights reserved.
       
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
       
     6 **
       
     7 ** This file is part of the QtGui module of the Qt Toolkit.
       
     8 **
       
     9 ** $QT_BEGIN_LICENSE:LGPL$
       
    10 ** No Commercial Usage
       
    11 ** This file contains pre-release code and may not be distributed.
       
    12 ** You may use this file in accordance with the terms and conditions
       
    13 ** contained in the Technology Preview License Agreement accompanying
       
    14 ** this package.
       
    15 **
       
    16 ** GNU Lesser General Public License Usage
       
    17 ** Alternatively, this file may be used under the terms of the GNU Lesser
       
    18 ** General Public License version 2.1 as published by the Free Software
       
    19 ** Foundation and appearing in the file LICENSE.LGPL included in the
       
    20 ** packaging of this file.  Please review the following information to
       
    21 ** ensure the GNU Lesser General Public License version 2.1 requirements
       
    22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
       
    23 **
       
    24 ** In addition, as a special exception, Nokia gives you certain additional
       
    25 ** rights.  These rights are described in the Nokia Qt LGPL Exception
       
    26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
       
    27 **
       
    28 ** If you have questions regarding the use of this file, please contact
       
    29 ** Nokia at qt-info@nokia.com.
       
    30 **
       
    31 **
       
    32 **
       
    33 **
       
    34 **
       
    35 **
       
    36 **
       
    37 **
       
    38 ** $QT_END_LICENSE$
       
    39 **
       
    40 ****************************************************************************/
       
    41 
       
    42 #ifndef QTEXTCURSOR_H
       
    43 #define QTEXTCURSOR_H
       
    44 
       
    45 #include <QtCore/qstring.h>
       
    46 #include <QtCore/qshareddata.h>
       
    47 #include <QtGui/qtextformat.h>
       
    48 
       
    49 QT_BEGIN_HEADER
       
    50 
       
    51 QT_BEGIN_NAMESPACE
       
    52 
       
    53 QT_MODULE(Gui)
       
    54 
       
    55 class QTextDocument;
       
    56 class QTextCursorPrivate;
       
    57 class QTextDocumentFragment;
       
    58 class QTextCharFormat;
       
    59 class QTextBlockFormat;
       
    60 class QTextListFormat;
       
    61 class QTextTableFormat;
       
    62 class QTextFrameFormat;
       
    63 class QTextImageFormat;
       
    64 class QTextDocumentPrivate;
       
    65 class QTextList;
       
    66 class QTextTable;
       
    67 class QTextFrame;
       
    68 class QTextBlock;
       
    69 
       
    70 class Q_GUI_EXPORT QTextCursor
       
    71 {
       
    72 public:
       
    73     QTextCursor();
       
    74     explicit QTextCursor(QTextDocument *document);
       
    75     QTextCursor(QTextDocumentPrivate *p, int pos);
       
    76     explicit QTextCursor(QTextFrame *frame);
       
    77     explicit QTextCursor(const QTextBlock &block);
       
    78     explicit QTextCursor(QTextCursorPrivate *d);
       
    79     QTextCursor(const QTextCursor &cursor);
       
    80     QTextCursor &operator=(const QTextCursor &other);
       
    81     ~QTextCursor();
       
    82 
       
    83     bool isNull() const;
       
    84 
       
    85     enum MoveMode {
       
    86         MoveAnchor,
       
    87         KeepAnchor
       
    88     };
       
    89 
       
    90     void setPosition(int pos, MoveMode mode = MoveAnchor);
       
    91     int position() const;
       
    92 
       
    93     int anchor() const;
       
    94 
       
    95     void insertText(const QString &text);
       
    96     void insertText(const QString &text, const QTextCharFormat &format);
       
    97 
       
    98     enum MoveOperation {
       
    99         NoMove,
       
   100 
       
   101         Start,
       
   102         Up,
       
   103         StartOfLine,
       
   104         StartOfBlock,
       
   105         StartOfWord,
       
   106         PreviousBlock,
       
   107         PreviousCharacter,
       
   108         PreviousWord,
       
   109         Left,
       
   110         WordLeft,
       
   111 
       
   112         End,
       
   113         Down,
       
   114         EndOfLine,
       
   115         EndOfWord,
       
   116         EndOfBlock,
       
   117         NextBlock,
       
   118         NextCharacter,
       
   119         NextWord,
       
   120         Right,
       
   121         WordRight,
       
   122 
       
   123         NextCell,
       
   124         PreviousCell,
       
   125         NextRow,
       
   126         PreviousRow
       
   127     };
       
   128 
       
   129     bool movePosition(MoveOperation op, MoveMode = MoveAnchor, int n = 1);
       
   130 
       
   131     bool visualNavigation() const;
       
   132     void setVisualNavigation(bool b);
       
   133 
       
   134     void deleteChar();
       
   135     void deletePreviousChar();
       
   136 
       
   137     enum SelectionType {
       
   138         WordUnderCursor,
       
   139         LineUnderCursor,
       
   140         BlockUnderCursor,
       
   141         Document
       
   142     };
       
   143     void select(SelectionType selection);
       
   144 
       
   145     bool hasSelection() const;
       
   146     bool hasComplexSelection() const;
       
   147     void removeSelectedText();
       
   148     void clearSelection();
       
   149     int selectionStart() const;
       
   150     int selectionEnd() const;
       
   151 
       
   152     QString selectedText() const;
       
   153     QTextDocumentFragment selection() const;
       
   154     void selectedTableCells(int *firstRow, int *numRows, int *firstColumn, int *numColumns) const;
       
   155 
       
   156     QTextBlock block() const;
       
   157 
       
   158     QTextCharFormat charFormat() const;
       
   159     void setCharFormat(const QTextCharFormat &format);
       
   160     void mergeCharFormat(const QTextCharFormat &modifier);
       
   161 
       
   162     QTextBlockFormat blockFormat() const;
       
   163     void setBlockFormat(const QTextBlockFormat &format);
       
   164     void mergeBlockFormat(const QTextBlockFormat &modifier);
       
   165 
       
   166     QTextCharFormat blockCharFormat() const;
       
   167     void setBlockCharFormat(const QTextCharFormat &format);
       
   168     void mergeBlockCharFormat(const QTextCharFormat &modifier);
       
   169 
       
   170     bool atBlockStart() const;
       
   171     bool atBlockEnd() const;
       
   172     bool atStart() const;
       
   173     bool atEnd() const;
       
   174 
       
   175     void insertBlock();
       
   176     void insertBlock(const QTextBlockFormat &format);
       
   177     void insertBlock(const QTextBlockFormat &format, const QTextCharFormat &charFormat);
       
   178 
       
   179     QTextList *insertList(const QTextListFormat &format);
       
   180     QTextList *insertList(QTextListFormat::Style style);
       
   181 
       
   182     QTextList *createList(const QTextListFormat &format);
       
   183     QTextList *createList(QTextListFormat::Style style);
       
   184     QTextList *currentList() const;
       
   185 
       
   186     QTextTable *insertTable(int rows, int cols, const QTextTableFormat &format);
       
   187     QTextTable *insertTable(int rows, int cols);
       
   188     QTextTable *currentTable() const;
       
   189 
       
   190     QTextFrame *insertFrame(const QTextFrameFormat &format);
       
   191     QTextFrame *currentFrame() const;
       
   192 
       
   193     void insertFragment(const QTextDocumentFragment &fragment);
       
   194 
       
   195 #ifndef QT_NO_TEXTHTMLPARSER
       
   196     void insertHtml(const QString &html);
       
   197 #endif // QT_NO_TEXTHTMLPARSER
       
   198 
       
   199     void insertImage(const QTextImageFormat &format, QTextFrameFormat::Position alignment);
       
   200     void insertImage(const QTextImageFormat &format);
       
   201     void insertImage(const QString &name);
       
   202     void insertImage(const QImage &image, const QString &name = QString());
       
   203 
       
   204     void beginEditBlock();
       
   205     void joinPreviousEditBlock();
       
   206     void endEditBlock();
       
   207 
       
   208     bool operator!=(const QTextCursor &rhs) const;
       
   209     bool operator<(const QTextCursor &rhs) const;
       
   210     bool operator<=(const QTextCursor &rhs) const;
       
   211     bool operator==(const QTextCursor &rhs) const;
       
   212     bool operator>=(const QTextCursor &rhs) const;
       
   213     bool operator>(const QTextCursor &rhs) const;
       
   214 
       
   215     bool isCopyOf(const QTextCursor &other) const;
       
   216 
       
   217     int blockNumber() const;
       
   218     int columnNumber() const;
       
   219 
       
   220     QTextDocument *document() const;
       
   221 
       
   222 private:
       
   223     QSharedDataPointer<QTextCursorPrivate> d;
       
   224     friend class QTextDocumentFragmentPrivate;
       
   225     friend class QTextCopyHelper;
       
   226 };
       
   227 
       
   228 QT_END_NAMESPACE
       
   229 
       
   230 QT_END_HEADER
       
   231 
       
   232 #endif // QTEXTCURSOR_H