⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qrichtext_p.h

📁 linux下聊天室的稳定版本
💻 H
📖 第 1 页 / 共 4 页
字号:
};#endif#ifndef QT_NO_TEXTCUSTOMITEMclass Q_EXPORT QTextHorizontalLine : public QTextCustomItem{public:    QTextHorizontalLine( QTextDocument *p, const QMap<QString, QString> &attr, const QString& context,			 QMimeSourceFactory &factory );    virtual ~QTextHorizontalLine();    void adjustToPainter( QPainter* );    void draw(QPainter* p, int x, int y, int cx, int cy, int cw, int ch, const QColorGroup& cg, bool selected );    QString richText() const;    bool ownLine() const { return TRUE; }private:    int tmpheight;    QColor color;    bool shade;};#endif#ifndef QT_NO_TEXTCUSTOMITEM#if defined(Q_TEMPLATEDLL)// MOC_SKIP_BEGINQ_TEMPLATE_EXTERN template class Q_EXPORT QPtrList<QTextCustomItem>;// MOC_SKIP_END#endif#endifclass Q_EXPORT QTextFlow{    friend class QTextDocument;#ifndef QT_NO_TEXTCUSTOMITEM    friend class QTextTableCell;#endifpublic:    QTextFlow();    virtual ~QTextFlow();    virtual void setWidth( int width );    int width() const;    virtual void setPageSize( int ps );    int pageSize() const { return pagesize; }    virtual int adjustLMargin( int yp, int h, int margin, int space );    virtual int adjustRMargin( int yp, int h, int margin, int space );#ifndef QT_NO_TEXTCUSTOMITEM    virtual void registerFloatingItem( QTextCustomItem* item );    virtual void unregisterFloatingItem( QTextCustomItem* item );#endif    virtual QRect boundingRect() const;    virtual void drawFloatingItems(QPainter* p, int cx, int cy, int cw, int ch, const QColorGroup& cg, bool selected );    virtual int adjustFlow( int  y, int w, int h ); // adjusts y according to the defined pagesize. Returns the shift.    virtual bool isEmpty();    void clear();private:    int w;    int pagesize;#ifndef QT_NO_TEXTCUSTOMITEM    QPtrList<QTextCustomItem> leftItems;    QPtrList<QTextCustomItem> rightItems;#endif};inline int QTextFlow::width() const { return w; }#ifndef QT_NO_TEXTCUSTOMITEMclass QTextTable;class Q_EXPORT QTextTableCell : public QLayoutItem{    friend class QTextTable;public:    QTextTableCell( QTextTable* table,		    int row, int column,		    const QMap<QString, QString> &attr,		    const QStyleSheetItem* style,		    const QTextFormat& fmt, const QString& context,		    QMimeSourceFactory &factory, QStyleSheet *sheet, const QString& doc );    virtual ~QTextTableCell();    QSize sizeHint() const ;    QSize minimumSize() const ;    QSize maximumSize() const ;    QSizePolicy::ExpandData expanding() const;    bool isEmpty() const;    void setGeometry( const QRect& ) ;    QRect geometry() const;    bool hasHeightForWidth() const;    int heightForWidth( int ) const;    void adjustToPainter( QPainter* );    int row() const { return row_; }    int column() const { return col_; }    int rowspan() const { return rowspan_; }    int colspan() const { return colspan_; }    int stretch() const { return stretch_; }    QTextDocument* richText()  const { return richtext; }    QTextTable* table() const { return parent; }    void draw( QPainter* p, int x, int y, int cx, int cy, int cw, int ch, const QColorGroup& cg, bool selected );    QBrush *backGround() const { return background; }    virtual void invalidate();    int verticalAlignmentOffset() const;    int horizontalAlignmentOffset() const;private:    QRect geom;    QTextTable* parent;    QTextDocument* richtext;    int row_;    int col_;    int rowspan_;    int colspan_;    int stretch_;    int maxw;    int minw;    bool hasFixedWidth;    QBrush *background;    int cached_width;    int cached_sizehint;    QMap<QString, QString> attributes;    int align;};#endif#if defined(Q_TEMPLATEDLL)// MOC_SKIP_BEGINQ_TEMPLATE_EXTERN template class Q_EXPORT QPtrList<QTextTableCell>;Q_TEMPLATE_EXTERN template class Q_EXPORT QMap<QTextCursor*, int>;// MOC_SKIP_END#endif#ifndef QT_NO_TEXTCUSTOMITEMclass Q_EXPORT QTextTable: public QTextCustomItem{    friend class QTextTableCell;public:    QTextTable( QTextDocument *p, const QMap<QString, QString> &attr );    virtual ~QTextTable();    void adjustToPainter( QPainter *p );    void pageBreak( int  y, QTextFlow* flow );    void draw( QPainter* p, int x, int y, int cx, int cy, int cw, int ch,	       const QColorGroup& cg, bool selected );    bool noErase() const { return TRUE; }    bool ownLine() const { return TRUE; }    Placement placement() const { return place; }    bool isNested() const { return TRUE; }    void resize( int nwidth );    virtual void invalidate();    virtual bool enter( QTextCursor *c, QTextDocument *&doc, QTextParagraph *&parag, int &idx, int &ox, int &oy, bool atEnd = FALSE );    virtual bool enterAt( QTextCursor *c, QTextDocument *&doc, QTextParagraph *&parag, int &idx, int &ox, int &oy, const QPoint &pos );    virtual bool next( QTextCursor *c, QTextDocument *&doc, QTextParagraph *&parag, int &idx, int &ox, int &oy );    virtual bool prev( QTextCursor *c, QTextDocument *&doc, QTextParagraph *&parag, int &idx, int &ox, int &oy );    virtual bool down( QTextCursor *c, QTextDocument *&doc, QTextParagraph *&parag, int &idx, int &ox, int &oy );    virtual bool up( QTextCursor *c, QTextDocument *&doc, QTextParagraph *&parag, int &idx, int &ox, int &oy );    QString richText() const;    int minimumWidth() const;    QPtrList<QTextTableCell> tableCells() const { return cells; }    bool isStretching() const { return stretch; }    void setParagraph(QTextParagraph *p);private:    void format( int w );    void addCell( QTextTableCell* cell );private:    QGridLayout* layout;    QPtrList<QTextTableCell> cells;    int cachewidth;    int fixwidth;    int cellpadding;    int cellspacing;    int border;    int outerborder;    int stretch;    int innerborder;    int us_cp, us_ib, us_b, us_ob, us_cs;    QMap<QString, QString> attributes;    QMap<QTextCursor*, int> currCell;    Placement place;    void adjustCells( int y , int shift );    int pageBreakFor;};#endif// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#ifndef QT_NO_TEXTCUSTOMITEMclass QTextTableCell;class QTextParagraph;#endifstruct Q_EXPORT QTextDocumentSelection{    QTextCursor startCursor, endCursor;    bool swapped;    Q_DUMMY_COMPARISON_OPERATOR(QTextDocumentSelection)};#if defined(Q_TEMPLATEDLL)// MOC_SKIP_BEGINQ_TEMPLATE_EXTERN template class Q_EXPORT QMap<int, QColor>;//Q_TEMPLATE_EXTERN template class Q_EXPORT QMap<int, bool>;Q_TEMPLATE_EXTERN template class Q_EXPORT QMap<int, QTextDocumentSelection>;Q_TEMPLATE_EXTERN template class Q_EXPORT QPtrList<QTextDocument>;// MOC_SKIP_END#endifclass Q_EXPORT QTextDocument : public QObject{    Q_OBJECT#ifndef QT_NO_TEXTCUSTOMITEM    friend class QTextTableCell;#endif    friend class QTextCursor;    friend class QTextEdit;    friend class QTextParagraph;    friend class QTextTable;public:    enum SelectionIds {	Standard = 0,	IMSelectionText		= 31998,	IMCompositionText	= 31999, // this must be higher!	Temp = 32000 // This selection must not be drawn, it's used e.g. by undo/redo to	// remove multiple lines with removeSelectedText()    };    QTextDocument( QTextDocument *p );    virtual ~QTextDocument();    QTextDocument *parent() const { return par; }    QTextParagraph *parentParagraph() const { return parentPar; }    void setText( const QString &text, const QString &context );    QMap<QString, QString> attributes() const { return attribs; }    void setAttributes( const QMap<QString, QString> &attr ) { attribs = attr; }    QString text() const;    QString text( int parag ) const;    QString originalText() const;    int x() const;    int y() const;    int width() const;    int widthUsed() const;    int visibleWidth() const;    int height() const;    void setWidth( int w );    int minimumWidth() const;    bool setMinimumWidth( int needed, int used = -1, QTextParagraph *parag = 0 );    void setY( int y );    int leftMargin() const;    void setLeftMargin( int lm );    int rightMargin() const;    void setRightMargin( int rm );    QTextParagraph *firstParagraph() const;    QTextParagraph *lastParagraph() const;    void setFirstParagraph( QTextParagraph *p );    void setLastParagraph( QTextParagraph *p );    void invalidate();    void setPreProcessor( QTextPreProcessor *sh );    QTextPreProcessor *preProcessor() const;    void setFormatter( QTextFormatter *f );    QTextFormatter *formatter() const;    void setIndent( QTextIndent *i );    QTextIndent *indent() const;    QColor selectionColor( int id ) const;    bool invertSelectionText( int id ) const;    void setSelectionColor( int id, const QColor &c );    void setInvertSelectionText( int id, bool b );    bool hasSelection( int id, bool visible = FALSE ) const;    void setSelectionStart( int id, const QTextCursor &cursor );    bool setSelectionEnd( int id, const QTextCursor &cursor );    void selectAll( int id );    bool removeSelection( int id );    void selectionStart( int id, int &paragId, int &index );    QTextCursor selectionStartCursor( int id );    QTextCursor selectionEndCursor( int id );    void selectionEnd( int id, int &paragId, int &index );    void setFormat( int id, QTextFormat *f, int flags );    int numSelections() const { return nSelections; }    void addSelection( int id );    QString selectedText( int id, bool asRichText = FALSE ) const;    void removeSelectedText( int id, QTextCursor *cursor );    void indentSelection( int id );    QTextParagraph *paragAt( int i ) const;    void addCommand( QTextCommand *cmd );    QTextCursor *undo( QTextCursor *c = 0 );    QTextCursor *redo( QTextCursor *c  = 0 );    QTextCommandHistory *commands() const { return commandHistory; }    QTextFormatCollection *formatCollection() const;    bool find( QTextCursor &cursor, const QString &expr, bool cs, bool wo, bool forward);    void setTextFormat( Qt::TextFormat f );    Qt::TextFormat textFormat() const;    bool inSelection( int selId, const QPoint &pos ) const;    QStyleSheet *styleSheet() const { return sheet_; }#ifndef QT_NO_MIME    QMimeSourceFactory *mimeSourceFactory() const { return factory_; }#endif    QString context() const { return contxt; }    void setStyleSheet( QStyleSheet *s );    void setDefaultFormat( const QFont &font, const QColor &color );#ifndef QT_NO_MIME    void setMimeSourceFactory( QMimeSourceFactory *f ) { if ( f ) factory_ = f; }#endif    void setContext( const QString &c ) { if ( !c.isEmpty() ) contxt = c; }    void setUnderlineLinks( bool b );    bool underlineLinks() const { return underlLinks; }    void setPaper( QBrush *brush ) { if ( backBrush ) delete backBrush; backBrush = brush; }    QBrush *paper() const { return backBrush; }    void doLayout( QPainter *p, int w );    void draw( QPainter *p, const QRect& rect, const QColorGroup &cg, const QBrush *paper = 0 );    bool useDoubleBuffer( QTextParagraph *parag, QPainter *p );    void drawParagraph( QPainter *p, QTextParagraph *parag, int cx, int cy, int cw, int ch,		    QPixmap *&doubleBuffer, const QColorGroup &cg,		    bool drawCursor, QTextCursor *cursor, bool resetChanged = TRUE );    QTextParagraph *draw( QPainter *p, int cx, int cy, int cw, int ch, const QColorGroup &cg,		      bool onlyChanged = FALSE, bool drawCursor = FALSE, QTextCursor *cursor = 0,		      bool resetChanged = TRUE );#ifndef QT_NO_TEXTCUSTOMITEM    void registerCustomItem( QTextCustomItem *i, QTextParagraph *p );    void unregisterCustomItem( QTextCustomItem *i, QTextParagraph *p );#endif    void setFlow( QTextFlow *f );    void takeFlow();    QTextFlow *flow() const { return flow_; }    bool isPageBreakEnabled() const { return pages; }    void setPageBreakEnabled( bool b ) { pages = b; }    void setUseFormatCollection( bool b ) { useFC = b; }    bool useFormatCollection() const { return useFC; }#ifndef QT_NO_TEXTCUSTOMITEM    QTextTableCell *tableCell() const { return tc; }    void setTableCell( QTextTableCell *c ) { tc = c; }#endif    void setPlainText( const QString &text );    void setRichText( const QString &text, const QString &context, const QTextFormat *initialFormat = 0 );    QString richText() const;    QString plainText() const;    bool focusNextPrevChild( bool next );    int alignment() const;    void setAlignment( int a );    int *tabArray() const;    int tabStopWidth() const;    void setTabArray( int *a );    void setTabStops( int tw );    void setUndoDepth( int d ) { commandHistory->setUndoDepth( d ); }    int undoDepth() const { return commandHistory->undoDepth(); }    int length() const;    void clear( bool createEmptyParag = FALSE );    virtual QTextParagraph *createParagraph( QTextDocument *d, QTextParagraph *pr = 0, QTextParagraph *nx = 0, bool updateIds = TRUE );    void insertChild( QObject *o ) { QObject::insertChild( o ); }    void removeChild( QObject *o ) { QObject::removeChild( o ); }    void insertChild( QTextDocument *d ) { childList.append( d ); }    void removeChild( QTextDocument *d ) { childList.removeRef( d ); }    QPtrList<QTextDocument> children() const { return childList; }    bool hasFocusParagraph() const;    QString focusHref() const;    QString focusName() const;    void invalidateOriginalText() { oTextValid = FALSE; oText = ""; }signals:    void minimumWidthChanged( int );private:    void init();    QPixmap *bufferPixmap( const QSize &s );    // HTML parser    bool hasPrefix(const QChar* doc, int length, int pos, QChar c);    bool hasPrefix(const QChar* doc, int length, int pos, const QString& s);#ifndef QT_NO_TEXTCUSTOMITEM    QTextCustomItem* parseTable( const QMap<QString, QString> &attr, const QTextFormat &fmt,				 const QChar* doc, int length, int& pos, QTextParagraph *curpar );#endif    bool eatSpace(const QChar* doc, int length, int& pos, bool includeNbsp = FALSE );    bool eat(const QChar* doc, int length, int& pos, QChar c);    QString parseOpenTag(const QChar* doc, int length, int& pos, QMap<QString, QString> &attr, bool& emptyTag);    QString parseCloseTag( const QChar* doc, int length, int& pos );    QChar parseHTMLSpecialChar(const QChar* doc, int length, int& pos);    QString parseWord(const QChar* doc, int length, int& pos, bool lower = TRUE);    QChar parseChar(const QChar* doc, int length, int& pos, QStyleSheetItem::WhiteSpaceMode wsm );    void setRichTextInternal( const QString &text, QTextCursor* cursor = 0, const QTextFormat *initialFormat = 0 );    void setRichTextMarginsInternal( QPtrList< QPtrVector<QStyleSheetItem> >& styles, QTextParagraph* stylesPar );private:    struct Q_EXPORT Focus {	QTextParagraph *parag;	int start, len;	QString href;	QString name;    };    int cx, cy, cw, vw;    QTextParagraph *fParag, *lParag;    QTextPreProcessor *pProcessor;    QMap<int, QColor> selectionColors;    QMap<int, QTextDocumentSelection> selections;    QMap<int, bool> selectionText;    QTextCommandHistory *commandHistory;    QTextFormatter *pFormatter;    QTextIndent *indenter;    QTextFormatCollection *fCollection;    Qt::TextFormat txtFormat;    uint preferRichText : 1;    uint pages : 1;    uint useFC : 1;    uint withoutDoubleBuffer : 1;    uint underlLinks : 1;    uint nextDoubleBuffered : 1;    uint oTextValid : 1;    uint mightHaveCustomItems : 1;    int align;    int nSelections;    QTextFlow *flow_;    QTextDocument *par;    QTextParagraph *parentPar;#ifndef QT_NO_TEXTCUSTOMITEM    QTextTableCell *tc;#endif    QBrush *backBrush;    QPixmap *buf_pixmap;    Focus focusIndicator;    int minw;    int wused;    int leftmargin;    int rightmargin;    QTextParagraph *minwParag, *curParag;    QStyleSheet* sheet_;#ifndef QT_NO_MIME    QMimeSourceFactory* factory_;#endif    QString contxt;    QMap<QString, QString> attribs;    int *tArray;    int tStopWidth;    int uDepth;    QString oText;    QPtrList<QTextDocument> childList;    QColor linkColor, bodyText;    double scaleFontsFactor;    short list_tm,list_bm, list_lm, li_tm, li_bm, par_tm, par_bm;#if defined(Q_DISABLE_COPY) // Disabled copy constructor and operator=    QTextDocument( const QTextDocument & );    QTextDocument &operator=( const QTextDocument & );#endif};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_EXPORT QTextDeleteCommand : public QTextCommand{public:    QTextDeleteCommand( QTextDocument *d, int i, int idx, const QMemArray<QTextStringChar> &str,			const QByteArray& oldStyle );    QTextDeleteCommand( QTextParagraph *p, int idx, const QMemArray<QTextStringChar> &str );    virtual ~QTextDeleteCommand();    Commands type() const { return Delete; }    QTextCursor *execute( QTextCursor *c );    QTextCursor *unexecute( QTextCursor *c );protected:    int id, index;    QTextParagraph *parag;    QMemArray<QTextStringChar> text;    QByteArray styleInformation;};class Q_EXPORT QTextInsertCommand : public QTextDeleteCommand{public:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -