summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-write/qtextedit.h
Unidiff
Diffstat (limited to 'noncore/apps/opie-write/qtextedit.h') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-write/qtextedit.h30
1 files changed, 18 insertions, 12 deletions
diff --git a/noncore/apps/opie-write/qtextedit.h b/noncore/apps/opie-write/qtextedit.h
index b4e5701..64e8f45 100644
--- a/noncore/apps/opie-write/qtextedit.h
+++ b/noncore/apps/opie-write/qtextedit.h
@@ -40,51 +40,53 @@
40 40
41#ifndef QT_H 41#ifndef QT_H
42#include "qscrollview.h" 42#include "qscrollview.h"
43#include "qstylesheet.h" 43#include "qstylesheet.h"
44#include "qvector.h" 44#include "qvector.h"
45#include "qvaluelist.h" 45#include "qvaluelist.h"
46#endif // QT_H 46#endif // QT_H
47 47
48class QPainter; 48class QPainter;
49class QKeyEvent; 49class QKeyEvent;
50class QResizeEvent; 50class QResizeEvent;
51class QMouseEvent; 51class QMouseEvent;
52class QTimer; 52class QTimer;
53class QFont; 53class QFont;
54class QColor; 54class QColor;
55struct QUndoRedoInfoPrivate; 55struct QUndoRedoInfoPrivate;
56class QPopupMenu; 56class QPopupMenu;
57 57
58namespace Qt3 { 58namespace Qt3 {
59 59
60class QTextString; 60class QTextString;
61class QTextDocument; 61class QTextDocument;
62class QTextCursor; 62class QTextCursor;
63class QTextCommand; 63class QTextCommand;
64class QTextParag; 64class QTextParagraph;
65class QTextFormat; 65class QTextFormat;
66class QTextEdit;
66class QTextBrowser; 67class QTextBrowser;
68class QTextString;
67class QTextEditPrivate; 69class QTextEditPrivate;
68 70
69class Q_EXPORT QTextEdit : public QScrollView 71class Q_EXPORT QTextEdit : public QScrollView
70{ 72{
71 friend class QTextBrowser; 73 friend class QTextBrowser;
72 74
73 Q_OBJECT 75 Q_OBJECT
74 Q_ENUMS( WordWrap WrapPolicy ) 76 Q_ENUMS( WordWrap WrapPolicy )
75 Q_PROPERTY( TextFormat textFormat READ textFormat WRITE setTextFormat ) 77 Q_PROPERTY( TextFormat textFormat READ textFormat WRITE setTextFormat )
76 Q_PROPERTY( QString text READ text WRITE setText ) 78 Q_PROPERTY( QString text READ text WRITE setText )
77 Q_PROPERTY( QBrush paper READ paper WRITE setPaper ) 79 Q_PROPERTY( QBrush paper READ paper WRITE setPaper )
78 Q_PROPERTY( bool linkUnderline READ linkUnderline WRITE setLinkUnderline ) 80 Q_PROPERTY( bool linkUnderline READ linkUnderline WRITE setLinkUnderline )
79 Q_PROPERTY( QString documentTitle READ documentTitle ) 81 Q_PROPERTY( QString documentTitle READ documentTitle )
80 Q_PROPERTY( int length READ length ) 82 Q_PROPERTY( int length READ length )
81 Q_PROPERTY( WordWrap wordWrap READ wordWrap WRITE setWordWrap ) 83 Q_PROPERTY( WordWrap wordWrap READ wordWrap WRITE setWordWrap )
82 Q_PROPERTY( int wrapColumnOrWidth READ wrapColumnOrWidth WRITE setWrapColumnOrWidth ) 84 Q_PROPERTY( int wrapColumnOrWidth READ wrapColumnOrWidth WRITE setWrapColumnOrWidth )
83 Q_PROPERTY( WrapPolicy wrapPolicy READ wrapPolicy WRITE setWrapPolicy ) 85 Q_PROPERTY( WrapPolicy wrapPolicy READ wrapPolicy WRITE setWrapPolicy )
84 Q_PROPERTY( bool hasSelectedText READ hasSelectedText ) 86 Q_PROPERTY( bool hasSelectedText READ hasSelectedText )
85 Q_PROPERTY( QString selectedText READ selectedText ) 87 Q_PROPERTY( QString selectedText READ selectedText )
86 Q_PROPERTY( int undoDepth READ undoDepth WRITE setUndoDepth ) 88 Q_PROPERTY( int undoDepth READ undoDepth WRITE setUndoDepth )
87 Q_PROPERTY( bool overwriteMode READ isOverwriteMode WRITE setOverwriteMode ) 89 Q_PROPERTY( bool overwriteMode READ isOverwriteMode WRITE setOverwriteMode )
88 Q_PROPERTY( bool modified READ isModified WRITE setModified DESIGNABLE false ) 90 Q_PROPERTY( bool modified READ isModified WRITE setModified DESIGNABLE false )
89 Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly ) 91 Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly )
90 Q_PROPERTY( bool undoRedoEnabled READ isUndoRedoEnabled WRITE setUndoRedoEnabled ) 92 Q_PROPERTY( bool undoRedoEnabled READ isUndoRedoEnabled WRITE setUndoRedoEnabled )
@@ -175,54 +177,59 @@ public:
175 WordWrap wordWrap() const; 177 WordWrap wordWrap() const;
176 int wrapColumnOrWidth() const; 178 int wrapColumnOrWidth() const;
177 WrapPolicy wrapPolicy() const; 179 WrapPolicy wrapPolicy() const;
178 180
179 int tabStopWidth() const; 181 int tabStopWidth() const;
180 182
181 QString anchorAt( const QPoint& pos ); 183 QString anchorAt( const QPoint& pos );
182 184
183 QSize sizeHint() const; 185 QSize sizeHint() const;
184 186
185 bool isReadOnly() const { return readonly; } 187 bool isReadOnly() const { return readonly; }
186 188
187 void getCursorPosition( int *parag, int *index ) const; 189 void getCursorPosition( int *parag, int *index ) const;
188 190
189 bool isModified() const; 191 bool isModified() const;
190 bool italic() const; 192 bool italic() const;
191 bool bold() const; 193 bool bold() const;
192 bool underline() const; 194 bool underline() const;
193 QString family() const; 195 QString family() const;
194 int pointSize() const; 196 int pointSize() const;
195 QColor color() const; 197 QColor color() const;
196 QFont font() const; 198 QFont font() const;
197 int alignment() const; 199 int alignment() const;
198 int undoDepth() const; 200 int undoDepth() const;
201
202 // do not use, will go away
199 virtual bool getFormat( int para, int index, QFont *font, QColor *color, VerticalAlignment *verticalAlignment ); 203 virtual bool getFormat( int para, int index, QFont *font, QColor *color, VerticalAlignment *verticalAlignment );
204 // do not use, will go away
200 virtual bool getParagraphFormat( int para, QFont *font, QColor *color, 205 virtual bool getParagraphFormat( int para, QFont *font, QColor *color,
201 VerticalAlignment *verticalAlignment, int *alignment, 206 VerticalAlignment *verticalAlignment, int *alignment,
202 QStyleSheetItem::DisplayMode *displayMode, 207 QStyleSheetItem::DisplayMode *displayMode,
203 QStyleSheetItem::ListStyle *listStyle, 208 QStyleSheetItem::ListStyle *listStyle,
204 int *listDepth ); 209 int *listDepth );
210
211
205 bool isOverwriteMode() const { return overWrite; } 212 bool isOverwriteMode() const { return overWrite; }
206 QColor paragraphBackgroundColor( int para ) const; 213 QColor paragraphBackgroundColor( int para ) const;
207 214
208 bool isUndoRedoEnabled() const; 215 bool isUndoRedoEnabled() const;
209 bool eventFilter( QObject *o, QEvent *e ); 216 bool eventFilter( QObject *o, QEvent *e );
210 217
211public slots: 218public slots:
212 void setEnabled( bool ); 219 void setEnabled( bool );
213 virtual void setMimeSourceFactory( QMimeSourceFactory* factory ); 220 virtual void setMimeSourceFactory( QMimeSourceFactory* factory );
214 virtual void setStyleSheet( QStyleSheet* styleSheet ); 221 virtual void setStyleSheet( QStyleSheet* styleSheet );
215 virtual void scrollToAnchor( const QString& name ); 222 virtual void scrollToAnchor( const QString& name );
216 virtual void setPaper( const QBrush& pap ); 223 virtual void setPaper( const QBrush& pap );
217 virtual void setLinkUnderline( bool ); 224 virtual void setLinkUnderline( bool );
218 225
219 virtual void setWordWrap( WordWrap mode ); 226 virtual void setWordWrap( WordWrap mode );
220 virtual void setWrapColumnOrWidth( int ); 227 virtual void setWrapColumnOrWidth( int );
221 virtual void setWrapPolicy( WrapPolicy policy ); 228 virtual void setWrapPolicy( WrapPolicy policy );
222 229
223 virtual void copy(); 230 virtual void copy();
224 virtual void append( const QString& text ); 231 virtual void append( const QString& text );
225 232
226 void setText( const QString &txt ) { setText( txt, QString::null ); } 233 void setText( const QString &txt ) { setText( txt, QString::null ); }
227 virtual void setText( const QString &txt, const QString &context ); 234 virtual void setText( const QString &txt, const QString &context );
228 virtual void setTextFormat( TextFormat f ); 235 virtual void setTextFormat( TextFormat f );
@@ -236,49 +243,52 @@ public slots:
236 virtual void zoomTo( int size ); 243 virtual void zoomTo( int size );
237 244
238 virtual void sync(); 245 virtual void sync();
239 virtual void setReadOnly( bool b ); 246 virtual void setReadOnly( bool b );
240 247
241 virtual void undo(); 248 virtual void undo();
242 virtual void redo(); 249 virtual void redo();
243 virtual void cut(); 250 virtual void cut();
244 virtual void paste(); 251 virtual void paste();
245#ifndef QT_NO_CLIPBOARD 252#ifndef QT_NO_CLIPBOARD
246 virtual void pasteSubType( const QCString &subtype ); 253 virtual void pasteSubType( const QCString &subtype );
247#endif 254#endif
248 virtual void clear(); 255 virtual void clear();
249 virtual void del(); 256 virtual void del();
250 virtual void indent(); 257 virtual void indent();
251 virtual void setItalic( bool b ); 258 virtual void setItalic( bool b );
252 virtual void setBold( bool b ); 259 virtual void setBold( bool b );
253 virtual void setUnderline( bool b ); 260 virtual void setUnderline( bool b );
254 virtual void setFamily( const QString &f ); 261 virtual void setFamily( const QString &f );
255 virtual void setPointSize( int s ); 262 virtual void setPointSize( int s );
256 virtual void setColor( const QColor &c ); 263 virtual void setColor( const QColor &c );
257 virtual void setFont( const QFont &f ); 264 virtual void setFont( const QFont &f );
258 virtual void setVerticalAlignment( VerticalAlignment a ); 265 virtual void setVerticalAlignment( VerticalAlignment a );
259 virtual void setAlignment( int a ); 266 virtual void setAlignment( int a );
267
268 // do not use, will go away
260 virtual void setParagType( QStyleSheetItem::DisplayMode dm, QStyleSheetItem::ListStyle listStyle ); 269 virtual void setParagType( QStyleSheetItem::DisplayMode dm, QStyleSheetItem::ListStyle listStyle );
270
261 virtual void setCursorPosition( int parag, int index ); 271 virtual void setCursorPosition( int parag, int index );
262 virtual void setSelection( int parag_from, int index_from, int parag_to, int index_to, int selNum = 0 ); 272 virtual void setSelection( int parag_from, int index_from, int parag_to, int index_to, int selNum = 0 );
263 virtual void setSelectionAttributes( int selNum, const QColor &back, bool invertText ); 273 virtual void setSelectionAttributes( int selNum, const QColor &back, bool invertText );
264 virtual void setModified( bool m ); 274 virtual void setModified( bool m );
265 virtual void resetFormat(); 275 virtual void resetFormat();
266 virtual void setUndoDepth( int d ); 276 virtual void setUndoDepth( int d );
267 virtual void setFormat( QTextFormat *f, int flags ); 277 virtual void setFormat( QTextFormat *f, int flags );
268 virtual void ensureCursorVisible(); 278 virtual void ensureCursorVisible();
269 virtual void placeCursor( const QPoint &pos, QTextCursor *c = 0 ); 279 virtual void placeCursor( const QPoint &pos, QTextCursor *c = 0 );
270 virtual void moveCursor( CursorAction action, bool select ); 280 virtual void moveCursor( CursorAction action, bool select );
271 virtual void doKeyboardAction( KeyboardAction action ); 281 virtual void doKeyboardAction( KeyboardAction action );
272 virtual void removeSelectedText( int selNum = 0 ); 282 virtual void removeSelectedText( int selNum = 0 );
273 virtual void removeSelection( int selNum = 0 ); 283 virtual void removeSelection( int selNum = 0 );
274 virtual void setCurrentFont( const QFont &f ); 284 virtual void setCurrentFont( const QFont &f );
275 virtual void setOverwriteMode( bool b ) { overWrite = b; } 285 virtual void setOverwriteMode( bool b ) { overWrite = b; }
276 286
277 virtual void scrollToBottom(); 287 virtual void scrollToBottom();
278 288
279 virtual void insert( const QString &text, bool indent, bool checkNewLine, bool removeSelected ); 289 virtual void insert( const QString &text, bool indent, bool checkNewLine, bool removeSelected );
280 virtual void insertAt( const QString &text, int para, int index ); 290 virtual void insertAt( const QString &text, int para, int index );
281 virtual void removeParagraph( int para ); 291 virtual void removeParagraph( int para );
282 virtual void insertParagraph( const QString &text, int para ); 292 virtual void insertParagraph( const QString &text, int para );
283 293
284 virtual void setParagraphBackgroundColor( int para, const QColor &bg ); 294 virtual void setParagraphBackgroundColor( int para, const QColor &bg );
@@ -325,105 +335,101 @@ protected:
325 bool focusNextPrevChild( bool next ); 335 bool focusNextPrevChild( bool next );
326 QTextDocument *document() const; 336 QTextDocument *document() const;
327 QTextCursor *textCursor() const; 337 QTextCursor *textCursor() const;
328 void setDocument( QTextDocument *doc ); 338 void setDocument( QTextDocument *doc );
329 virtual QPopupMenu *createPopupMenu( const QPoint& pos ); 339 virtual QPopupMenu *createPopupMenu( const QPoint& pos );
330 virtual QPopupMenu *createPopupMenu(); 340 virtual QPopupMenu *createPopupMenu();
331 void drawCursor( bool visible ); 341 void drawCursor( bool visible );
332 342
333 void windowActivationChange( bool ); 343 void windowActivationChange( bool );
334 344
335protected slots: 345protected slots:
336 virtual void doChangeInterval(); 346 virtual void doChangeInterval();
337 347
338private slots: 348private slots:
339 void formatMore(); 349 void formatMore();
340 void doResize(); 350 void doResize();
341 void autoScrollTimerDone(); 351 void autoScrollTimerDone();
342 void blinkCursor(); 352 void blinkCursor();
343 void setModified(); 353 void setModified();
344 void startDrag(); 354 void startDrag();
345 void documentWidthChanged( int w ); 355 void documentWidthChanged( int w );
346 356
347private: 357private:
348 struct Q_EXPORT UndoRedoInfo { 358 struct Q_EXPORT UndoRedoInfo {
349 enum Type { Invalid, Insert, Delete, Backspace, Return, RemoveSelected, Format, Alignment, ParagType }; 359 enum Type { Invalid, Insert, Delete, Backspace, Return, RemoveSelected, Format, Style };
350 360
351 UndoRedoInfo( QTextDocument *dc ); 361 UndoRedoInfo( QTextDocument *dc );
352 ~UndoRedoInfo(); 362 ~UndoRedoInfo();
353 void clear(); 363 void clear();
354 bool valid() const; 364 bool valid() const;
355 365
356 QUndoRedoInfoPrivate *d; 366 QUndoRedoInfoPrivate *d;
357 int id; 367 int id;
358 int index; 368 int index;
359 int eid; 369 int eid;
360 int eindex; 370 int eindex;
361 QTextFormat *format; 371 QTextFormat *format;
362 int flags; 372 int flags;
363 Type type; 373 Type type;
364 QTextDocument *doc; 374 QTextDocument *doc;
365 QMemArray<int> oldAligns; 375 QByteArray styleInformation;
366 int newAlign;
367 bool list;
368 QStyleSheetItem::ListStyle listStyle;
369 QValueList< QPtrVector<QStyleSheetItem> > oldStyles;
370 QValueList<QStyleSheetItem::ListStyle> oldListStyles;
371 }; 376 };
372 377
373private: 378private:
374 void updateCursor( const QPoint & pos ); 379 void updateCursor( const QPoint & pos );
375 void handleMouseMove( const QPoint& pos ); 380 void handleMouseMove( const QPoint& pos );
376 void drawContents( QPainter * ); 381 void drawContents( QPainter * );
377 virtual bool linksEnabled() const { return FALSE; } 382 virtual bool linksEnabled() const { return FALSE; }
378 void init(); 383 void init();
379 void checkUndoRedoInfo( UndoRedoInfo::Type t ); 384 void checkUndoRedoInfo( UndoRedoInfo::Type t );
380 void updateCurrentFormat(); 385 void updateCurrentFormat();
381 bool handleReadOnlyKeyEvent( QKeyEvent *e ); 386 bool handleReadOnlyKeyEvent( QKeyEvent *e );
382 void makeParagVisible( QTextParag *p ); 387 void makeParagVisible( QTextParagraph *p );
383#ifndef QT_NO_MIME 388#ifndef QT_NO_MIME
384 QCString pickSpecial(QMimeSource* ms, bool always_ask, const QPoint&); 389 QCString pickSpecial(QMimeSource* ms, bool always_ask, const QPoint&);
385#endif 390#endif
386#ifndef QT_NO_MIMECLIPBOARD 391#ifndef QT_NO_MIMECLIPBOARD
387 void pasteSpecial(const QPoint&); 392 void pasteSpecial(const QPoint&);
388#endif 393#endif
389 void setFontInternal( const QFont &f ); 394 void setFontInternal( const QFont &f );
390 395
391 virtual void emitHighlighted( const QString & ) {} 396 virtual void emitHighlighted( const QString & ) {}
392 virtual void emitLinkClicked( const QString & ) {} 397 virtual void emitLinkClicked( const QString & ) {}
393 398
394 void readFormats( QTextCursor &c1, QTextCursor &c2, int oldLen, QTextString &text, bool fillStyles = FALSE ); 399 void readFormats( QTextCursor &c1, QTextCursor &c2, QTextString &text, bool fillStyles = FALSE );
395 void clearUndoRedo(); 400 void clearUndoRedo();
396 void paintDocument( bool drawAll, QPainter *p, int cx = -1, int cy = -1, int cw = -1, int ch = -1 ); 401 void paintDocument( bool drawAll, QPainter *p, int cx = -1, int cy = -1, int cw = -1, int ch = -1 );
397 void moveCursor( CursorAction action ); 402 void moveCursor( CursorAction action );
398 void ensureFormatted( QTextParag *p ); 403 void ensureFormatted( QTextParagraph *p );
399 void placeCursor( const QPoint &pos, QTextCursor *c, bool link ); 404 void placeCursor( const QPoint &pos, QTextCursor *c, bool link );
405 void updateMicroFocusHint();
400 406
401private: 407private:
402 QTextDocument *doc; 408 QTextDocument *doc;
403 QTextCursor *cursor; 409 QTextCursor *cursor;
404 QTimer *formatTimer, *scrollTimer, *changeIntervalTimer, *blinkTimer, *dragStartTimer; 410 QTimer *formatTimer, *scrollTimer, *changeIntervalTimer, *blinkTimer, *dragStartTimer;
405 QTextParag *lastFormatted; 411 QTextParagraph *lastFormatted;
406 int interval; 412 int interval;
407 UndoRedoInfo undoRedoInfo; 413 UndoRedoInfo undoRedoInfo;
408 QTextFormat *currentFormat; 414 QTextFormat *currentFormat;
409 int currentAlignment; 415 int currentAlignment;
410 QPoint oldMousePos, mousePos; 416 QPoint oldMousePos, mousePos;
411 QPoint dragStartPos; 417 QPoint dragStartPos;
412 QString onLink; 418 QString onLink;
413 WordWrap wrapMode; 419 WordWrap wrapMode;
414 WrapPolicy wPolicy; 420 WrapPolicy wPolicy;
415 int wrapWidth; 421 int wrapWidth;
416 QString pressedLink; 422 QString pressedLink;
417 QTextEditPrivate *d; 423 QTextEditPrivate *d;
418 bool inDoubleClick : 1; 424 bool inDoubleClick : 1;
419 bool mousePressed : 1; 425 bool mousePressed : 1;
420 bool cursorVisible : 1; 426 bool cursorVisible : 1;
421 bool blinkCursorVisible : 1; 427 bool blinkCursorVisible : 1;
422 bool readOnly : 1; 428 bool readOnly : 1;
423 bool modified : 1; 429 bool modified : 1;
424 bool mightStartDrag : 1; 430 bool mightStartDrag : 1;
425 bool inDnD : 1; 431 bool inDnD : 1;
426 bool readonly : 1; 432 bool readonly : 1;
427 bool undoEnabled : 1; 433 bool undoEnabled : 1;
428 bool overWrite : 1; 434 bool overWrite : 1;
429}; 435};