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

📄 qrichtext_p.h

📁 linux下聊天室的稳定版本
💻 H
📖 第 1 页 / 共 4 页
字号:
    QTextInsertCommand( QTextDocument *d, int i, int idx, const QMemArray<QTextStringChar> &str,			const QByteArray& oldStyleInfo )	: QTextDeleteCommand( d, i, idx, str, oldStyleInfo ) {}    QTextInsertCommand( QTextParagraph *p, int idx, const QMemArray<QTextStringChar> &str )	: QTextDeleteCommand( p, idx, str ) {}    virtual ~QTextInsertCommand() {}    Commands type() const { return Insert; }    QTextCursor *execute( QTextCursor *c ) { return QTextDeleteCommand::unexecute( c ); }    QTextCursor *unexecute( QTextCursor *c ) { return QTextDeleteCommand::execute( c ); }};class Q_EXPORT QTextFormatCommand : public QTextCommand{public:    QTextFormatCommand( QTextDocument *d, int sid, int sidx, int eid, int eidx, const QMemArray<QTextStringChar> &old, QTextFormat *f, int fl );    virtual ~QTextFormatCommand();    Commands type() const { return Format; }    QTextCursor *execute( QTextCursor *c );    QTextCursor *unexecute( QTextCursor *c );protected:    int startId, startIndex, endId, endIndex;    QTextFormat *format;    QMemArray<QTextStringChar> oldFormats;    int flags;};class Q_EXPORT QTextStyleCommand : public QTextCommand{public:    QTextStyleCommand( QTextDocument *d, int fParag, int lParag, const QByteArray& beforeChange  );    virtual ~QTextStyleCommand() {}    Commands type() const { return Style; }    QTextCursor *execute( QTextCursor *c );    QTextCursor *unexecute( QTextCursor *c );    static QByteArray readStyleInformation(  QTextDocument* d, int fParag, int lParag );    static void writeStyleInformation(  QTextDocument* d, int fParag, const QByteArray& style );private:    int firstParag, lastParag;    QByteArray before;    QByteArray after;};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++struct Q_EXPORT QTextParagraphSelection{    QTextParagraphSelection() : start(0), end(0) { }    int start, end;    Q_DUMMY_COMPARISON_OPERATOR(QTextParagraphSelection)};struct Q_EXPORT QTextLineStart{    QTextLineStart() : y( 0 ), baseLine( 0 ), h( 0 )    {  }    QTextLineStart( int y_, int bl, int h_ ) : y( y_ ), baseLine( bl ), h( h_ ),	w( 0 )    {  }public:    int y, baseLine, h;    int w;};#if defined(Q_TEMPLATEDLL)// MOC_SKIP_BEGINQ_TEMPLATE_EXTERN template class Q_EXPORT QMap<int, QTextParagraphSelection>;Q_TEMPLATE_EXTERN template class Q_EXPORT QMap<int, QTextLineStart*>;// MOC_SKIP_END#endifclass Q_EXPORT QTextParagraphData{public:    QTextParagraphData() {}    virtual ~QTextParagraphData();    virtual void join( QTextParagraphData * );};class QTextParagraphPseudoDocument;class QSyntaxHighlighter;class Q_EXPORT QTextParagraph{    friend class QTextDocument;    friend class QTextCursor;    friend class QSyntaxHighlighter;public:    QTextParagraph( QTextDocument *d, QTextParagraph *pr = 0, QTextParagraph *nx = 0, bool updateIds = TRUE );    ~QTextParagraph();    QTextString *string() const;    QTextStringChar *at( int i ) const; // maybe remove later    int leftGap() const;    int length() const; // maybe remove later    void setListStyle( QStyleSheetItem::ListStyle ls ) { lstyle = ls; changed = TRUE; }    QStyleSheetItem::ListStyle listStyle() const { return (QStyleSheetItem::ListStyle)lstyle; }    void setListItem( bool li );    bool isListItem() const { return litem; }    void setListValue( int v ) { list_val = v; }    int listValue() const { return list_val > 0 ? list_val : -1; }    void setListDepth( int depth );    int listDepth() const { return ldepth; }//     void setFormat( QTextFormat *fm );//     QTextFormat *paragFormat() const;    inline QTextDocument *document() const {	if (hasdoc) return (QTextDocument*) docOrPseudo;	return 0;    }    QTextParagraphPseudoDocument *pseudoDocument() const;    QRect rect() const;    void setHeight( int h ) { r.setHeight( h ); }    void show();    void hide();    bool isVisible() const { return visible; }    QTextParagraph *prev() const;    QTextParagraph *next() const;    void setPrev( QTextParagraph *s );    void setNext( QTextParagraph *s );    void insert( int index, const QString &s );    void insert( int index, const QChar *unicode, int len );    void append( const QString &s, bool reallyAtEnd = FALSE );    void truncate( int index );    void remove( int index, int len );    void join( QTextParagraph *s );    void invalidate( int chr );    void move( int &dy );    void format( int start = -1, bool doMove = TRUE );    bool isValid() const;    bool hasChanged() const;    void setChanged( bool b, bool recursive = FALSE );    int lineHeightOfChar( int i, int *bl = 0, int *y = 0 ) const;    QTextStringChar *lineStartOfChar( int i, int *index = 0, int *line = 0 ) const;    int lines() const;    QTextStringChar *lineStartOfLine( int line, int *index = 0 ) const;    int lineY( int l ) const;    int lineBaseLine( int l ) const;    int lineHeight( int l ) const;    void lineInfo( int l, int &y, int &h, int &bl ) const;    void setSelection( int id, int start, int end );    void removeSelection( int id );    int selectionStart( int id ) const;    int selectionEnd( int id ) const;    bool hasSelection( int id ) const;    bool hasAnySelection() const;    bool fullSelected( int id ) const;    void setEndState( int s );    int endState() const;    void setParagId( int i );    int paragId() const;    bool firstPreProcess() const;    void setFirstPreProcess( bool b );    void indent( int *oldIndent = 0, int *newIndent = 0 );    void setExtraData( QTextParagraphData *data );    QTextParagraphData *extraData() const;    QMap<int, QTextLineStart*> &lineStartList();    void setFormat( int index, int len, QTextFormat *f, bool useCollection = TRUE, int flags = -1 );    void setAlignment( int a );    int alignment() const;    void paint( QPainter &painter, const QColorGroup &cg, QTextCursor *cursor = 0, bool drawSelections = FALSE,			int clipx = -1, int clipy = -1, int clipw = -1, int cliph = -1 );    int topMargin() const;    int bottomMargin() const;    int leftMargin() const;    int firstLineMargin() const;    int rightMargin() const;    int lineSpacing() const;#ifndef QT_NO_TEXTCUSTOMITEM    void registerFloatingItem( QTextCustomItem *i );    void unregisterFloatingItem( QTextCustomItem *i );#endif    void setFullWidth( bool b ) { fullWidth = b; }    bool isFullWidth() const { return fullWidth; }#ifndef QT_NO_TEXTCUSTOMITEM    QTextTableCell *tableCell() const;#endif    QBrush *background() const;    int documentWidth() const;    int documentVisibleWidth() const;    int documentX() const;    int documentY() const;    QTextFormatCollection *formatCollection() const;    QTextFormatter *formatter() const;    int nextTab( int i, int x );    int *tabArray() const;    void setTabArray( int *a );    void setTabStops( int tw );    void adjustToPainter( QPainter *p );    void setNewLinesAllowed( bool b );    bool isNewLinesAllowed() const;    QString richText() const;    void addCommand( QTextCommand *cmd );    QTextCursor *undo( QTextCursor *c = 0 );    QTextCursor *redo( QTextCursor *c  = 0 );    QTextCommandHistory *commands() const;    void copyParagData( QTextParagraph *parag );    void setBreakable( bool b ) { breakable = b; }    bool isBreakable() const { return breakable; }    void setBackgroundColor( const QColor &c );    QColor *backgroundColor() const { return bgcol; }    void clearBackgroundColor();    void setMovedDown( bool b ) { movedDown = b; }    bool wasMovedDown() const { return movedDown; }    void setDirection( QChar::Direction d );    QChar::Direction direction() const;    void setPaintDevice( QPaintDevice *pd ) { paintdevice = pd; }    void readStyleInformation( QDataStream& stream );    void writeStyleInformation( QDataStream& stream ) const;protected:    void setColorForSelection( QColor &c, QPainter &p, const QColorGroup& cg, int selection );    void drawLabel( QPainter* p, int x, int y, int w, int h, int base, const QColorGroup& cg );    void drawString( QPainter &painter, const QString &str, int start, int len, int xstart,			     int y, int baseLine, int w, int h, bool drawSelections, int fullSelectionWidth,			     QTextStringChar *formatChar, const QColorGroup& cg,			     bool rightToLeft );private:    QMap<int, QTextParagraphSelection> &selections() const;#ifndef QT_NO_TEXTCUSTOMITEM    QPtrList<QTextCustomItem> &floatingItems() const;#endif    QBrush backgroundBrush( const QColorGroup&cg ) { if ( bgcol ) return *bgcol; return cg.brush( QColorGroup::Base ); }    void invalidateStyleCache();    QMap<int, QTextLineStart*> lineStarts;    QRect r;    QTextParagraph *p, *n;    void *docOrPseudo;    uint changed : 1;    uint firstFormat : 1;    uint firstPProcess : 1;    uint needPreProcess : 1;    uint fullWidth : 1;    uint lastInFrame : 1;    uint visible : 1;    uint breakable : 1;    uint movedDown : 1;    uint mightHaveCustomItems : 1;    uint hasdoc : 1;    uint litem : 1; // whether the paragraph is a list item    uint rtext : 1; // whether the paragraph needs rich text margin    int align : 4;    uint /*QStyleSheetItem::ListStyle*/ lstyle : 4;    int invalid;    int state, id;    QTextString *str;    QMap<int, QTextParagraphSelection> *mSelections;#ifndef QT_NO_TEXTCUSTOMITEM    QPtrList<QTextCustomItem> *mFloatingItems;#endif    short utm, ubm, ulm, urm, uflm, ulinespacing;    short tabStopWidth;    int minwidth;    int *tArray;    QTextParagraphData *eData;    short list_val;    ushort ldepth;    QColor *bgcol;    QPaintDevice *paintdevice;};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_EXPORT QTextFormatter{public:    QTextFormatter();    virtual ~QTextFormatter();    virtual int format( QTextDocument *doc, QTextParagraph *parag, int start, const QMap<int, QTextLineStart*> &oldLineStarts ) = 0;    virtual int formatVertically( QTextDocument* doc, QTextParagraph* parag );    bool isWrapEnabled( QTextParagraph *p ) const { if ( !wrapEnabled ) return FALSE; if ( p && !p->isBreakable() ) return FALSE; return TRUE;}    int wrapAtColumn() const { return wrapColumn;}    virtual void setWrapEnabled( bool b );    virtual void setWrapAtColumn( int c );    virtual void setAllowBreakInWords( bool b ) { biw = b; }    bool allowBreakInWords() const { return biw; }    int minimumWidth() const { return thisminw; }    int widthUsed() const { return thiswused; }protected:    virtual QTextLineStart *formatLine( QTextParagraph *parag, QTextString *string, QTextLineStart *line, QTextStringChar *start,					       QTextStringChar *last, int align = Qt::AlignAuto, int space = 0 );#ifndef QT_NO_COMPLEXTEXT    virtual QTextLineStart *bidiReorderLine( QTextParagraph *parag, QTextString *string, QTextLineStart *line, QTextStringChar *start,						    QTextStringChar *last, int align, int space );#endif    void insertLineStart( QTextParagraph *parag, int index, QTextLineStart *ls );    int thisminw;    int thiswused;private:    bool wrapEnabled;    int wrapColumn;    bool biw;#ifdef HAVE_THAI_BREAKS    static QCString *thaiCache;    static QTextString *cachedString;    static ThBreakIterator *thaiIt;#endif};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_EXPORT QTextFormatterBreakInWords : public QTextFormatter{public:    QTextFormatterBreakInWords();    virtual ~QTextFormatterBreakInWords() {}    int format( QTextDocument *doc, QTextParagraph *parag, int start, const QMap<int, QTextLineStart*> &oldLineStarts );};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_EXPORT QTextFormatterBreakWords : public QTextFormatter{public:    QTextFormatterBreakWords();    virtual ~QTextFormatterBreakWords() {}    int format( QTextDocument *doc, QTextParagraph *parag, int start, const QMap<int, QTextLineStart*> &oldLineStarts );};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_EXPORT QTextIndent{public:    QTextIndent();    virtual ~QTextIndent() {}    virtual void indent( QTextDocument *doc, QTextParagraph *parag, int *oldIndent = 0, int *newIndent = 0 ) = 0;};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_EXPORT QTextPreProcessor{public:    enum Ids {	Standard = 0    };    QTextPreProcessor();    virtual ~QTextPreProcessor() {}    virtual void process( QTextDocument *doc, QTextParagraph *, int, bool = TRUE ) = 0;    virtual QTextFormat *format( int id ) = 0;};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_EXPORT QTextFormat{    friend class QTextFormatCollection;    friend class QTextDocument;public:    enum Flags {	NoFlags,	Bold = 1,	Italic = 2,	Underline = 4,	Family = 8,	Size = 16,	Color = 32,	Misspelled = 64,	VAlign = 128,	StrikeOut= 256,	Font = Bold | Italic | Underline | Family | Size | StrikeOut,	Format = Font | Color | Misspelled | VAlign    };    enum VerticalAlignment { AlignNormal, AlignSuperScript, AlignSubScript };    QTextFormat();    virtual ~QTextFormat();    QTextFormat( const QStyleSheetItem *s );    QTextFormat( const QFont &f, const QColor &c, QTextFormatCollection *parent = 0 );    QTextFormat( const QTextFormat &fm );    QTextFormat makeTextFormat( const QStyleSheetItem *style, const QMap<QString,QString>& attr, double scaleFontsFactor ) const;    QTextFormat& operator=( const QTextFormat &fm );    QColor color() const;    QFont font() const;    QFontMetrics fontMetrics() const { return fm; }    bool isMisspelled() const;    VerticalAlignment vAlign() const;    int minLeftBearing() const;    int minRightBearing() const;    int width( const QChar &c ) const;    int width( const QString &str, int pos ) const;    int height() const;    int ascent() const;    int descent() const;    int leading() const;    bool useLinkColor() const;    void setBold( bool b );    void setItalic( bool b );    void setUnderline( bool b );    void setStrikeOut( bool b );    void setFamily( const QString &f );    void setPointSize( int s );    void setFont( const QFont &f );    void setColor( const QColor &c );    void setMisspelled( bool b );    void setVAlign( VerticalAlignment a );    bool operator==( const QTextFormat &f ) const;    QTextFormatCollection *parent() const;    const QString &key() const;    static QString getKey( const QFont &f, const QColor &c, bool misspelled, VerticalAlignment vAlign );    void addRef();    void removeRef();    QString makeFormatChangeTags( QTextFormat* defaultFormat, QTextFormat *f, const QString& oldAnchorHref, const QString& anchorHref ) const;    QString makeFormatEndTags( QTextFormat* defaultFormat, const QString& anchorHref ) const;    static void setPainter( QPainter *p );    static QPainter* painter();    bool fontSizesInPixels() { return usePixelSizes; }protected:    virtual void generateKey();private:    void update();    static void applyFont( const QFont &f );private:    QFont fn;    QColor col;    QFontMetrics fm;    uint missp : 1;    uint linkColor : 1;    uint usePixelSizes : 1;    int leftBearing, rightBearing;    VerticalAlignment ha;    uchar widths[ 256 ];    int hei, asc, dsc;    QTextFormatCollection *collection;    int ref;    QString k;    int logicalFontSize;    int stdSize;    static QPainter *pntr;    static QFontMetrics *pntr_fm;    static int pntr_asc;    static int pntr_hei;    static int pntr_ldg;    static int pntr_dsc;};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#if defined(Q_TEMPLATEDLL)// MOC_SKIP_BEGINQ_TEMPLATE_EXTERN template class Q_EXPORT QDict<QTextFormat>;// MOC_SKIP_END#endifclass Q_EXPORT QTextFormatCollection{    friend class QTextDocument;    friend class QTextFormat;public:    QTextFormatCollection();    virtual ~QTextFormatCollection();    void setDefaultFormat( QTextFormat *f );    QTextFormat *defaultFormat() const;    virtual QTextFormat *format( QTextFormat *f );

⌨️ 快捷键说明

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