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

📄 q3richtext_p.h

📁 奇趣公司比较新的qt/emd版本
💻 H
📖 第 1 页 / 共 4 页
字号:
protected:    int startId, startIndex, endId, endIndex;    Q3TextFormat *format;    QVector<Q3TextStringChar> oldFormats;    int flags;};class Q_COMPAT_EXPORT Q3TextStyleCommand : public Q3TextCommand{public:    Q3TextStyleCommand(Q3TextDocument *dc, int fParag, int lParag, const QByteArray& beforeChange );    virtual ~Q3TextStyleCommand() {}    Commands type() const { return Style; }    Q3TextCursor *execute(Q3TextCursor *c);    Q3TextCursor *unexecute(Q3TextCursor *c);    static QByteArray readStyleInformation( Q3TextDocument* dc, int fParag, int lParag);    static void writeStyleInformation( Q3TextDocument* dc, int fParag, const QByteArray& style);private:    int firstParag, lastParag;    QByteArray before;    QByteArray after;};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++struct Q_COMPAT_EXPORT Q3TextParagraphSelection{    int start, end;    Q_DUMMY_COMPARISON_OPERATOR(Q3TextParagraphSelection)};struct Q_COMPAT_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;};class Q_COMPAT_EXPORT Q3TextParagraphData{public:    Q3TextParagraphData() {}    virtual ~Q3TextParagraphData();    virtual void join(Q3TextParagraphData *);};class Q3TextParagraphPseudoDocument;class Q3SyntaxHighlighter;class Q_COMPAT_EXPORT Q3TextParagraph{    friend class Q3TextDocument;    friend class Q3TextCursor;    friend class Q3SyntaxHighlighter;public:    Q3TextParagraph(Q3TextDocument *dc, Q3TextParagraph *pr = 0, Q3TextParagraph *nx = 0, bool updateIds = true);    ~Q3TextParagraph();    Q3TextString *string() const;    Q3TextStringChar *at(int i) const; // maybe remove later    int leftGap() const;    int length() const; // maybe remove later    void setListStyle(Q3StyleSheetItem::ListStyle ls) { lstyle = ls; changed = true; }    Q3StyleSheetItem::ListStyle listStyle() const { return (Q3StyleSheetItem::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(Q3TextFormat *fm);//     Q3TextFormat *paragFormat() const;    inline Q3TextDocument *document() const {        if (hasdoc) return (Q3TextDocument*) docOrPseudo;        return 0;    }    Q3TextParagraphPseudoDocument *pseudoDocument() const;    QRect rect() const;    void setHeight(int h) { r.setHeight(h); }    void show();    void hide();    bool isVisible() const { return visible; }    Q3TextParagraph *prev() const;    Q3TextParagraph *next() const;    void setPrev(Q3TextParagraph *s);    void setNext(Q3TextParagraph *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(Q3TextParagraph *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;    Q3TextStringChar *lineStartOfChar(int i, int *index = 0, int *line = 0) const;    int lines() const;    Q3TextStringChar *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(Q3TextParagraphData *data);    Q3TextParagraphData *extraData() const;    QMap<int, QTextLineStart*> &lineStartList();    void setFormat(int index, int len, Q3TextFormat *f, bool useCollection = true, int flags = -1);    void setAlignment(int a);    int alignment() const;    void paint(QPainter &painter, const QPalette &pal, Q3TextCursor *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(Q3TextCustomItem *i);    void unregisterFloatingItem(Q3TextCustomItem *i);#endif    void setFullWidth(bool b) { fullWidth = b; }    bool isFullWidth() const { return fullWidth; }#ifndef QT_NO_TEXTCUSTOMITEM    Q3TextTableCell *tableCell() const;#endif    QBrush *background() const;    int documentWidth() const;    int documentVisibleWidth() const;    int documentX() const;    int documentY() const;    Q3TextFormatCollection *formatCollection() const;    Q3TextFormatter *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(Q3TextCommand *cmd);    Q3TextCursor *undo(Q3TextCursor *c = 0);    Q3TextCursor *redo(Q3TextCursor *c  = 0);    Q3TextCommandHistory *commands() const;    void copyParagData(Q3TextParagraph *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);    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 QPalette &pal, int selection);    void drawLabel(QPainter* p, int x, int y, int w, int h, int base, const QPalette &pal);    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,                             Q3TextStringChar *formatChar, const QPalette &pal,                             bool rightToLeft);private:    QMap<int, Q3TextParagraphSelection> &selections() const;#ifndef QT_NO_TEXTCUSTOMITEM    QList<Q3TextCustomItem *> &floatingItems() const;#endif    inline QBrush backgroundBrush(const QPalette &pal) {        if (bgcol)            return *bgcol;        return pal.brush(QPalette::Base);    }    void invalidateStyleCache();    QMap<int, QTextLineStart*> lineStarts;    QRect r;    Q3TextParagraph *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    signed int align : 5;    uint /*Q3StyleSheetItem::ListStyle*/ lstyle : 4;    int invalid;    int state, id;    Q3TextString *str;    QMap<int, Q3TextParagraphSelection> *mSelections;#ifndef QT_NO_TEXTCUSTOMITEM    QList<Q3TextCustomItem *> *mFloatingItems;#endif    short utm, ubm, ulm, urm, uflm, ulinespacing;    short tabStopWidth, minwidth;    int *tArray;    Q3TextParagraphData *eData;    short list_val;    ushort ldepth;    QColor *bgcol;    QPaintDevice *paintdevice;};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_COMPAT_EXPORT Q3TextFormatter{public:    Q3TextFormatter();    virtual ~Q3TextFormatter();    virtual int format(Q3TextDocument *doc, Q3TextParagraph *parag, int start, const QMap<int, QTextLineStart*> &oldLineStarts) = 0;    virtual int formatVertically(Q3TextDocument* doc, Q3TextParagraph* parag);    bool isWrapEnabled(Q3TextParagraph *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(Q3TextParagraph *parag, Q3TextString *string, QTextLineStart *line, Q3TextStringChar *start,                                               Q3TextStringChar *last, int align = Qt::AlignAuto, int space = 0);#ifndef QT_NO_COMPLEXTEXT    virtual QTextLineStart *bidiReorderLine(Q3TextParagraph *parag, Q3TextString *string, QTextLineStart *line, Q3TextStringChar *start,                                                    Q3TextStringChar *last, int align, int space);#endif    void insertLineStart(Q3TextParagraph *parag, int index, QTextLineStart *ls);    int thisminw;    int thiswused;private:    bool wrapEnabled;    int wrapColumn;    bool biw;};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_COMPAT_EXPORT Q3TextFormatterBreakInWords : public Q3TextFormatter{public:    Q3TextFormatterBreakInWords();    virtual ~Q3TextFormatterBreakInWords() {}    int format(Q3TextDocument *doc, Q3TextParagraph *parag, int start, const QMap<int, QTextLineStart*> &oldLineStarts);};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_COMPAT_EXPORT Q3TextFormatterBreakWords : public Q3TextFormatter{public:    Q3TextFormatterBreakWords();    virtual ~Q3TextFormatterBreakWords() {}    int format(Q3TextDocument *doc, Q3TextParagraph *parag, int start, const QMap<int, QTextLineStart*> &oldLineStarts);};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_COMPAT_EXPORT Q3TextIndent{public:    Q3TextIndent();    virtual ~Q3TextIndent() {}    virtual void indent(Q3TextDocument *doc, Q3TextParagraph *parag, int *oldIndent = 0, int *newIndent = 0) = 0;};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_COMPAT_EXPORT Q3TextPreProcessor{public:    enum Ids {        Standard = 0    };    Q3TextPreProcessor();    virtual ~Q3TextPreProcessor() {}    virtual void process(Q3TextDocument *doc, Q3TextParagraph *, int, bool = true) = 0;    virtual Q3TextFormat *format(int id) = 0;};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_COMPAT_EXPORT Q3TextFormat{    friend class Q3TextFormatCollection;    friend class Q3TextDocument;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 };    Q3TextFormat();    virtual ~Q3TextFormat();    Q3TextFormat(const Q3StyleSheetItem *s);    Q3TextFormat(const QFont &f, const QColor &c, Q3TextFormatCollection *parent = 0);    Q3TextFormat(const Q3TextFormat &fm);    Q3TextFormat makeTextFormat(const Q3StyleSheetItem *style, const QMap<QString,QString>& attr, double scaleFontsFactor) const;    Q3TextFormat& operator=(const Q3TextFormat &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 Q3TextFormat &f) const;    Q3TextFormatCollection *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(Q3TextFormat* defaultFormat, Q3TextFormat *f, const QString& oldAnchorHref, const QString& anchorHref) const;    QString makeFormatEndTags(Q3TextFormat* 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;    Q3TextFormatCollection *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;};// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++class Q_COMPAT_EXPORT Q3TextFormatCollection{    friend class Q3TextDocument;    friend class Q3TextFormat;public:    Q3TextFormatCollection();    virtual ~Q3TextFormatCollection();    void setDefaultFormat(Q3TextFormat *f);    Q3TextFormat *defaultFormat() const;    virtual Q3TextFormat *format(Q3TextFormat *f);    virtual Q3TextFormat *format(Q3TextFormat *of, Q3TextFormat *nf, int flags);    virtual Q3TextFormat *format(const QFont &f, const QColor &c);    virtual void remove(Q3TextFormat *f);    virtual Q3TextFormat *createFormat(const Q3TextFormat &f) { return new Q3TextFormat(f); }    virtual Q3TextFormat *createFormat(const QFont &f, const QColor &c) { return new Q3TextFormat(f, c, this); }    void updateDefaultFormat(const QFont &font, const QColor &c, Q3StyleSheet *sheet);    QPaintDevice *paintDevice() const { return paintdevice; }    void setPaintDevice(QPaintDevice *);private:    void updateKeys();private:    Q3TextFormat *defFormat, *lastFormat, *cachedFormat;    QHash<QString, Q3TextFormat *> cKey;    Q3TextFormat *cres;    QFont cfont;    QColor ccol;    QString kof, knf;    int cflags;    QPaintDevice *paintdevice;};class Q_COMPAT_EXPORT Q3TextParagraphPseudoDocument{

⌨️ 快捷键说明

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