1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>
Qt Toolkit - qmultilineedit.h include file
</title><style type="text/css"><!--
h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }body { background: white; color: black; }
--></style>
</head><body bgcolor="#ffffff">
<table width="100%">
<tr><td><a href="index.html">
<img width="100" height="100" src="qtlogo.png"
alt="Home" border="0"><img width="100"
height="100" src="face.png" alt="Home" border="0">
</a><td valign=top><div align=right><img src="dochead.png" width="472" height="27"><br>
<a href="classes.html"><b>Classes</b></a>
-<a href="annotated.html">Annotated</a>
- <a href="hierarchy.html">Tree</a>
-<a href="functions.html">Functions</a>
-<a href="index.html">Home</a>
-<a href="topicals.html"><b>Structure</b></a>
</div>
</table>
<h1 align=center>qmultilineedit.h</h1><br clear="all">
This is the verbatim text of the qmultilineedit.h include file. It is
provided only for illustration; the copyright
remains with Trolltech.
<hr>
<pre>
/**********************************************************************
** $Id: qt/src/widgets/qmultilineedit.h 2.3.2 edited 2001-01-26 $
**
** Definition of QMultiLineEdit widget class
**
** Created : 961005
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of the widgets module of the Qt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
** licenses may use this file in accordance with the Qt Commercial License
** Agreement provided with the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
** information about Qt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for QPL licensing information.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef QMULTILINEEDIT_H
#define QMULTILINEEDIT_H
#ifndef QT_H
#include "qtableview.h"
#include "qstring.h"
#include "qlist.h"
#endif // QT_H
#ifndef QT_NO_MULTILINEEDIT
struct QMultiLineData;
class QMultiLineEditCommand;
class <a href="qvalidator.html">QValidator</a>;
class Q_EXPORT <a href="qmultilineedit.html">QMultiLineEdit</a> : public <a href="qtableview.html">QTableView</a>
{
Q_OBJECT
Q_ENUMS( EchoMode WordWrap WrapPolicy )
Q_PROPERTY( int numLines READ numLines )
Q_PROPERTY( bool atBeginning READ atBeginning )
Q_PROPERTY( bool atEnd READ atEnd )
Q_PROPERTY( int maxLineWidth READ maxLineWidth )
Q_PROPERTY( Alignment alignment READ alignment WRITE setAlignment )
Q_PROPERTY( bool edited READ edited WRITE setEdited DESIGNABLE false )
Q_PROPERTY( EchoMode echoMode READ echoMode WRITE setEchoMode )
Q_PROPERTY( int maxLength READ maxLength WRITE setMaxLength )
Q_PROPERTY( int maxLines READ maxLines WRITE setMaxLines )
Q_PROPERTY( int hMargin READ hMargin WRITE setHMargin )
Q_PROPERTY( WordWrap wordWrap READ wordWrap WRITE setWordWrap )
Q_PROPERTY( int wrapColumnOrWidth READ wrapColumnOrWidth WRITE setWrapColumnOrWidth )
Q_PROPERTY( WrapPolicy wrapPolicy READ wrapPolicy WRITE setWrapPolicy )
Q_PROPERTY( bool autoUpdate READ autoUpdate WRITE setAutoUpdate DESIGNABLE false )
Q_PROPERTY( bool undoEnabled READ isUndoEnabled WRITE setUndoEnabled )
Q_PROPERTY( int undoDepth READ undoDepth WRITE setUndoDepth )
Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly )
Q_PROPERTY( bool overWriteMode READ isOverwriteMode WRITE setOverwriteMode )
Q_PROPERTY( QString text READ text WRITE setText )
Q_PROPERTY( int length READ length )
public:
QMultiLineEdit( QWidget *parent=0, const char *name=0 );
~QMultiLineEdit();
QString textLine( int line ) const;
int numLines() const;
QSize sizeHint() const;
QSize minimumSizeHint() const;
QSizePolicy sizePolicy() const;
virtual void setFont( const QFont &font );
virtual void insertLine( const QString &s, int line = -1 );
virtual void insertAt( const QString &s, int line, int col, bool mark = FALSE );
virtual void removeLine( int line );
void cursorPosition( int *line, int *col ) const;
virtual void setCursorPosition( int line, int col, bool mark = FALSE );
void getCursorPosition( int *line, int *col ) const;
bool atBeginning() const;
bool atEnd() const;
virtual void setFixedVisibleLines( int lines );
int maxLineWidth() const;
void setAlignment( int flags );
int alignment() const;
virtual void setValidator( const QValidator * );
const QValidator * validator() const;
void setEdited( bool );
bool edited() const;
void cursorWordForward( bool mark );
void cursorWordBackward( bool mark );
enum EchoMode { Normal, NoEcho, Password };
virtual void setEchoMode( EchoMode );
EchoMode echoMode() const;
void setMaxLength(int);
int maxLength() const;
virtual void setMaxLineLength(int);
int maxLineLength() const;
virtual void setMaxLines(int);
int maxLines() const;
virtual void setHMargin(int);
int hMargin() const;
virtual void setSelection( int row_from, int col_from, int row_to, int col_t );
enum WordWrap {
NoWrap,
WidgetWidth,
FixedPixelWidth,
FixedColumnWidth
};
void setWordWrap( WordWrap mode );
WordWrap wordWrap() const;
void setWrapColumnOrWidth( int );
int wrapColumnOrWidth() const;
enum WrapPolicy {
AtWhiteSpace,
Anywhere
};
void setWrapPolicy( WrapPolicy policy );
WrapPolicy wrapPolicy() const;
bool autoUpdate() const;
virtual void setAutoUpdate( bool );
void setUndoEnabled( bool );
bool isUndoEnabled() const;
void setUndoDepth( int );
int undoDepth() const;
bool isReadOnly() const;
bool isOverwriteMode() const;
QString text() const;
int length() const;
static void setDefaultTabStop( int ex );
static int defaultTabStop();
public slots:
virtual void setText( const QString &);
virtual void setReadOnly( bool );
virtual void setOverwriteMode( bool );
void clear();
void append( const QString &);
void deselect();
void selectAll();
#ifndef QT_NO_CLIPBOARD
void paste();
void pasteSubType(const QCString& subtype);
void copyText() const;
void copy() const;
void cut();
#endif
void insert( const QString& );
void undo();
void redo();
signals:
void textChanged();
void returnPressed();
void undoAvailable( bool );
void redoAvailable( bool );
void copyAvailable( bool );
protected:
void paintCell( QPainter *, int row, int col );
bool event( QEvent * );
void mousePressEvent( QMouseEvent * );
void mouseMoveEvent( QMouseEvent * );
void mouseReleaseEvent( QMouseEvent * );
void mouseDoubleClickEvent( QMouseEvent * );
void wheelEvent( QWheelEvent * );
void keyPressEvent( QKeyEvent * );
void focusInEvent( QFocusEvent * );
void focusOutEvent( QFocusEvent * );
void timerEvent( QTimerEvent * );
void leaveEvent( QEvent * );
void resizeEvent( QResizeEvent * );
bool focusNextPrevChild( bool );
#ifndef QT_NO_DRAGANDDROP
void dragMoveEvent( QDragMoveEvent* );
void dragEnterEvent( QDragEnterEvent * );
void dropEvent( QDropEvent* );
void dragLeaveEvent( QDragLeaveEvent* );
#endif
bool hasMarkedText() const;
QString markedText() const;
int textWidth( int );
int textWidth( const QString &);
QPoint cursorPoint() const;
protected:
virtual void insert( const QString&, bool mark );
virtual void newLine();
virtual void killLine();
virtual void pageUp( bool mark=FALSE );
virtual void pageDown( bool mark=FALSE );
virtual void cursorLeft( bool mark=FALSE, bool wrap = TRUE );
virtual void cursorRight( bool mark=FALSE, bool wrap = TRUE );
virtual void cursorUp( bool mark=FALSE );
virtual void cursorDown( bool mark=FALSE );
virtual void backspace();
virtual void del();
virtual void home( bool mark=FALSE );
virtual void end( bool mark=FALSE );
bool getMarkedRegion( int *line1, int *col1,
int *line2, int *col2 ) const;
int lineLength( int row ) const;
QString *getString( int row ) const;
bool isEndOfParagraph( int row ) const;
QString stringShown( int row ) const;
protected:
bool cursorOn;
void insertChar( QChar );
private slots:
void clipboardChanged();
void blinkTimerTimeout();
void scrollTimerTimeout();
void dndTimeout();
private:
#ifndef QT_NO_MIME
QCString pickSpecial(QMimeSource* ms, bool always_ask, const QPoint&);
#endif
#ifndef QT_NO_MIMECLIPBOARD
void pasteSpecial(const QPoint&);
#endif
struct QMultiLineEditRow {
QMultiLineEditRow( QString string, int width, bool nl = TRUE )
:s(string), w(width), newline( nl )
{
};
QString s;
int w;
bool newline;
};
QList<QMultiLineEditRow> *contents;
QMultiLineData *d;
bool readOnly;
bool dummy;
bool markIsOn;
bool dragScrolling ;
bool dragMarking;
bool textDirty;
bool wordMark;
bool overWrite;
int cursorX;
int cursorY;
int markAnchorX;
int markAnchorY;
int markDragX;
int markDragY;
int curXPos; // cell coord of cursor
int blinkTimer; // #### not used anymore - remove in 3.0
int scrollTimer; // #### not used anymore - remove in 3.0
int mapFromView( int xPos, int row );
int mapToView( int xIndex, int row );
void pixelPosToCursorPos(QPoint p, int* x, int* y) const;
void setCursorPixelPosition(QPoint p, bool clear_mark=TRUE);
void setWidth( int );
void updateCellWidth();
bool partiallyInvisible( int row );
void makeVisible();
void setBottomCell( int row );
void newMark( int posx, int posy, bool copy=TRUE );
void markWord( int posx, int posy );
void extendSelectionWord( int &newX, int&newY);
int charClass( QChar );
void turnMark( bool on );
bool inMark( int posx, int posy ) const;
bool beforeMark( int posx, int posy ) const;
bool afterMark( int posx, int posy ) const;
int setNumRowsAndTruncate();
#ifndef QT_NO_DRAGANDDROP
void doDrag();
#endif
void startAutoScroll();
void stopAutoScroll();
void cursorLeft( bool mark, bool clear_mark, bool wrap );
void cursorRight( bool mark, bool clear_mark, bool wrap );
void cursorUp( bool mark, bool clear_mark );
void cursorDown( bool mark, bool clear_mark );
void wrapLine( int line, int removed = 0);
void rebreakParagraph( int line, int removed = 0 );
void rebreakAll();
void insertAtAux( const QString &s, int line, int col, bool mark = FALSE );
void killLineAux();
void delAux();
int positionToOffsetInternal( int row, int col ) const;
void offsetToPositionInternal( int position, int *row, int *col ) const;
void deleteNextChar( int offset, int row, int col );
void addUndoCmd( QMultiLineEditCommand* );
void addRedoCmd( QMultiLineEditCommand* );
void processCmd( QMultiLineEditCommand*, bool );
private: // Disabled copy constructor and operator=
#if defined(Q_DISABLE_COPY)
QMultiLineEdit( const QMultiLineEdit & );
QMultiLineEdit &operator=( const QMultiLineEdit & );
#endif
};
inline bool QMultiLineEdit::isReadOnly() const { return readOnly; }
inline bool QMultiLineEdit::isOverwriteMode() const { return overWrite; }
inline void QMultiLineEdit::setOverwriteMode( bool on )
{
overWrite = on;
}
inline int QMultiLineEdit::lineLength( int row ) const
{
return contents->at( row )->s.length();
}
inline bool QMultiLineEdit::atEnd() const
{
return cursorY == (int)contents->count() - 1
&& cursorX == lineLength( cursorY ) ;
}
inline bool QMultiLineEdit::atBeginning() const
{
return cursorY == 0 && cursorX == 0;
}
inline QString *QMultiLineEdit::getString( int row ) const
{
return &(contents->at( row )->s);
}
inline int QMultiLineEdit::numLines() const
{
return contents->count();
}
#endif // QT_NO_MULTILINEEDIT
#endif // QMULTILINED_H
</pre>
<p><address><hr><div align="center">
<table width="100%" cellspacing="0" border="0"><tr>
<td>Copyright 2001 Trolltech<td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a>
<td align="right"><div align="right">Qt version 2.3.2</div>
</table></div></address></body></html>
|