25 Q_DECLARE_PRIVATE(QAbstractTextDocumentLayout)
28 explicit QAbstractTextDocumentLayout(QTextDocument *doc);
29 ~QAbstractTextDocumentLayout();
34 QTextCharFormat format;
45 QList<Selection> selections;
48 virtual void draw(QPainter *painter,
const PaintContext &context) = 0;
49 virtual int hitTest(
const QPointF &point, Qt::HitTestAccuracy accuracy)
const = 0;
51 QString anchorAt(
const QPointF& pos)
const;
52 QString imageAt(
const QPointF &pos)
const;
53 QTextFormat formatAt(
const QPointF &pos)
const;
54 QTextBlock blockWithMarkerAt(
const QPointF &pos)
const;
56 virtual int pageCount()
const = 0;
57 virtual QSizeF documentSize()
const = 0;
59 virtual QRectF frameBoundingRect(QTextFrame *frame)
const = 0;
60 virtual QRectF blockBoundingRect(
const QTextBlock &block)
const = 0;
62 void setPaintDevice(QPaintDevice *device);
63 QPaintDevice *paintDevice()
const;
65 QTextDocument *document()
const;
67 void registerHandler(
int objectType, QObject *component);
68 void unregisterHandler(
int objectType, QObject *component =
nullptr);
69 QTextObjectInterface *handlerForObject(
int objectType)
const;
72 void update(
const QRectF & = QRectF(0., 0., 1000000000., 1000000000.));
73 void updateBlock(
const QTextBlock &block);
74 void documentSizeChanged(
const QSizeF &newSize);
75 void pageCountChanged(
int newPages);
78 QAbstractTextDocumentLayout(QAbstractTextDocumentLayoutPrivate &, QTextDocument *);
80 virtual void documentChanged(
int from,
int charsRemoved,
int charsAdded) = 0;
82 virtual void resizeInlineObject(QTextInlineObject item,
int posInDocument,
const QTextFormat &format);
83 virtual void positionInlineObject(QTextInlineObject item,
int posInDocument,
const QTextFormat &format);
84 virtual void drawInlineObject(QPainter *painter,
const QRectF &rect, QTextInlineObject object,
int posInDocument,
const QTextFormat &format);
86 int formatIndex(
int pos);
87 QTextCharFormat format(
int pos);
90 friend class QWidgetTextControl;
91 friend class QTextDocument;
92 friend class QTextDocumentPrivate;
93 friend class QTextEngine;
94 friend class QTextLayout;
95 friend class QTextLine;
96 Q_PRIVATE_SLOT(d_func(),
int _q_dynamicPageCountSlot())
97 Q_PRIVATE_SLOT(d_func(), QSizeF _q_dynamicDocumentSizeSlot())
105 virtual ~QTextObjectInterface();
106 virtual QSizeF intrinsicSize(QTextDocument *doc,
int posInDocument,
const QTextFormat &format) = 0;
107 virtual void drawObject(QPainter *painter,
const QRectF &rect, QTextDocument *doc,
int posInDocument,
const QTextFormat &format) = 0;
The QTextObjectInterface class allows drawing of custom text objects in \l{QTextDocument}...