Coverage Report

Created: 2026-03-31 07:41

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/work/prefix/include/QtGui/qfontmetrics.h
Line
Count
Source
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#ifndef QFONTMETRICS_H
5
#define QFONTMETRICS_H
6
7
#include <QtGui/qtguiglobal.h>
8
#include <QtGui/qfont.h>
9
10
#ifndef QT_INCLUDE_COMPAT
11
#include <QtCore/qrect.h>
12
#endif
13
#include <QtCore/qshareddata.h>
14
15
QT_BEGIN_NAMESPACE
16
17
class QRect;
18
class QTextOption;
19
20
class Q_GUI_EXPORT QFontMetrics
21
{
22
public:
23
    explicit QFontMetrics(const QFont &);
24
    QFontMetrics(const QFont &font, const QPaintDevice *pd);
25
    QFontMetrics(const QFontMetrics &);
26
    QFontMetrics(QFontMetrics &&) = default;
27
    ~QFontMetrics();
28
29
    QFontMetrics &operator=(const QFontMetrics &);
30
    QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QFontMetrics)
31
32
    void swap(QFontMetrics &other) noexcept
33
0
    { d.swap(other.d); }
34
35
    int ascent() const;
36
    int capHeight() const;
37
    int descent() const;
38
    int height() const;
39
    int leading() const;
40
    int lineSpacing() const;
41
    int minLeftBearing() const;
42
    int minRightBearing() const;
43
    int maxWidth() const;
44
45
    int xHeight() const;
46
    int averageCharWidth() const;
47
48
    bool inFont(QChar) const;
49
    bool inFontUcs4(uint ucs4) const;
50
51
    int leftBearing(QChar) const;
52
    int rightBearing(QChar) const;
53
54
    int horizontalAdvance(const QString &, int len = -1) const;
55
    int horizontalAdvance(const QString &, const QTextOption &textOption) const;
56
    int horizontalAdvance(QChar) const;
57
58
    QRect boundingRect(QChar) const;
59
60
    QRect boundingRect(const QString &text) const;
61
    QRect boundingRect(const QString &text, const QTextOption &textOption) const;
62
    QRect boundingRect(const QRect &r, int flags, const QString &text, int tabstops = 0, int *tabarray = nullptr) const;
63
    inline QRect boundingRect(int x, int y, int w, int h, int flags, const QString &text,
64
                              int tabstops = 0, int *tabarray = nullptr) const
65
0
        { return boundingRect(QRect(x, y, w, h), flags, text, tabstops, tabarray); }
66
    QSize size(int flags, const QString& str, int tabstops = 0, int *tabarray = nullptr) const;
67
68
    QRect tightBoundingRect(const QString &text) const;
69
    QRect tightBoundingRect(const QString &text, const QTextOption &textOption) const;
70
71
    QString elidedText(const QString &text, Qt::TextElideMode mode, int width, int flags = 0) const;
72
73
    int underlinePos() const;
74
    int overlinePos() const;
75
    int strikeOutPos() const;
76
    int lineWidth() const;
77
78
    qreal fontDpi() const;
79
80
    bool operator==(const QFontMetrics &other) const;
81
0
    inline bool operator !=(const QFontMetrics &other) const { return !operator==(other); }
82
83
private:
84
    friend class QFontMetricsF;
85
    friend class QStackTextEngine;
86
87
    QExplicitlySharedDataPointer<QFontPrivate> d;
88
};
89
90
Q_DECLARE_SHARED(QFontMetrics)
91
92
class Q_GUI_EXPORT QFontMetricsF
93
{
94
public:
95
    explicit QFontMetricsF(const QFont &font);
96
    QFontMetricsF(const QFont &font, const QPaintDevice *pd);
97
    QFontMetricsF(const QFontMetrics &);
98
    QFontMetricsF(const QFontMetricsF &);
99
    QFontMetricsF(QFontMetricsF &&) = default;
100
    ~QFontMetricsF();
101
102
    QFontMetricsF &operator=(const QFontMetricsF &);
103
    QFontMetricsF &operator=(const QFontMetrics &);
104
    QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QFontMetricsF)
105
106
0
    void swap(QFontMetricsF &other) noexcept { d.swap(other.d); }
107
108
    qreal ascent() const;
109
    qreal capHeight() const;
110
    qreal descent() const;
111
    qreal height() const;
112
    qreal leading() const;
113
    qreal lineSpacing() const;
114
    qreal minLeftBearing() const;
115
    qreal minRightBearing() const;
116
    qreal maxWidth() const;
117
118
    qreal xHeight() const;
119
    qreal averageCharWidth() const;
120
121
    bool inFont(QChar) const;
122
    bool inFontUcs4(uint ucs4) const;
123
124
    qreal leftBearing(QChar) const;
125
    qreal rightBearing(QChar) const;
126
127
    qreal horizontalAdvance(const QString &string, int length = -1) const;
128
    qreal horizontalAdvance(QChar) const;
129
    qreal horizontalAdvance(const QString &string, const QTextOption &textOption) const;
130
131
    QRectF boundingRect(const QString &string) const;
132
    QRectF boundingRect(const QString &text, const QTextOption &textOption) const;
133
    QRectF boundingRect(QChar) const;
134
    QRectF boundingRect(const QRectF &r, int flags, const QString& string, int tabstops = 0, int *tabarray = nullptr) const;
135
    QSizeF size(int flags, const QString& str, int tabstops = 0, int *tabarray = nullptr) const;
136
137
    QRectF tightBoundingRect(const QString &text) const;
138
    QRectF tightBoundingRect(const QString &text, const QTextOption &textOption) const;
139
140
    QString elidedText(const QString &text, Qt::TextElideMode mode, qreal width, int flags = 0) const;
141
142
    qreal underlinePos() const;
143
    qreal overlinePos() const;
144
    qreal strikeOutPos() const;
145
    qreal lineWidth() const;
146
147
    qreal fontDpi() const;
148
149
    bool operator==(const QFontMetricsF &other) const;
150
0
    inline bool operator !=(const QFontMetricsF &other) const { return !operator==(other); }
151
152
private:
153
    QExplicitlySharedDataPointer<QFontPrivate> d;
154
};
155
156
Q_DECLARE_SHARED(QFontMetricsF)
157
158
QT_END_NAMESPACE
159
160
#endif // QFONTMETRICS_H