File size: 9,338 Bytes
3bb804c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
// qfont.sip generated by MetaSIP
//
// This file is part of the QtGui Python extension module.
//
// Copyright (c) 2025 Riverbank Computing Limited <info@riverbankcomputing.com>
// 
// This file is part of PyQt6.
// 
// This file may be used under the terms of the GNU General Public License
// version 3.0 as published by the Free Software Foundation and appearing in
// the file LICENSE included in the packaging of this file.  Please review the
// following information to ensure the GNU General Public License version 3.0
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
// 
// If you do not wish to use this file under the terms of the GPL version 3.0
// then you may purchase a commercial license.  For more information contact
// info@riverbankcomputing.com.
// 
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


class QFont
{
%TypeHeaderCode
#include <qfont.h>
%End

public:
    enum StyleHint
    {
        Helvetica,
        SansSerif,
        Times,
        Serif,
        Courier,
        TypeWriter,
        OldEnglish,
        Decorative,
        System,
        AnyStyle,
        Cursive,
        Monospace,
        Fantasy,
    };

    enum StyleStrategy /BaseType=Flag/
    {
        PreferDefault,
        PreferBitmap,
        PreferDevice,
        PreferOutline,
        ForceOutline,
        PreferMatch,
        PreferQuality,
        PreferAntialias,
        NoAntialias,
        NoSubpixelAntialias,
        NoFontMerging,
        PreferNoShaping,
%If (Qt_6_8_0 -)
        ContextFontMerging,
%End
%If (Qt_6_8_0 -)
        PreferTypoLineMetrics,
%End
    };

    enum Weight /BaseType=IntEnum/
    {
        Thin,
        ExtraLight,
        Light,
        Normal,
        Medium,
        DemiBold,
        Bold,
        ExtraBold,
        Black,
    };

    enum Style
    {
        StyleNormal,
        StyleItalic,
        StyleOblique,
    };

    enum Stretch /BaseType=IntEnum/
    {
        AnyStretch,
        UltraCondensed,
        ExtraCondensed,
        Condensed,
        SemiCondensed,
        Unstretched,
        SemiExpanded,
        Expanded,
        ExtraExpanded,
        UltraExpanded,
    };

    QFont();
%If (Qt_6_1_0 -)
    QFont(const QStringList &families, int pointSize = -1, int weight = -1, bool italic = false);
%End
    QFont(const QString &family, int pointSize = -1, int weight = -1, bool italic = false);
    QFont(const QFont &);
    QFont(const QVariant &variant /GetWrapper/) /NoDerived/;
%MethodCode
        if (a0->canConvert<QFont>())
            sipCpp = new QFont(a0->value<QFont>());
        else
            sipError = sipBadCallableArg(0, a0Wrapper);
%End

    ~QFont();
    QString family() const;
    void setFamily(const QString &);
    int pointSize() const;
    void setPointSize(int);
    qreal pointSizeF() const;
    void setPointSizeF(qreal);
    int pixelSize() const;
    void setPixelSize(int);
    int weight() const [QFont::Weight ()];
    void setWeight(int weight);
%MethodCode
        sipCpp->setWeight(QFont::Weight(a0));
%End

    void setStyle(QFont::Style style);
    QFont::Style style() const;
    bool underline() const;
    void setUnderline(bool);
    bool overline() const;
    void setOverline(bool);
    bool strikeOut() const;
    void setStrikeOut(bool);
    bool fixedPitch() const;
    void setFixedPitch(bool);
    bool kerning() const;
    void setKerning(bool);
    QFont::StyleHint styleHint() const;
    QFont::StyleStrategy styleStrategy() const;
    void setStyleHint(QFont::StyleHint hint, QFont::StyleStrategy strategy = QFont::PreferDefault);
    void setStyleStrategy(QFont::StyleStrategy s);
    int stretch() const;
    void setStretch(int);
    bool exactMatch() const;
    bool operator==(const QFont &) const;
    bool operator!=(const QFont &) const;
    bool operator<(const QFont &) const;
    bool isCopyOf(const QFont &) const;
    QString key() const;
    QString toString() const;
    bool fromString(const QString &);
    static QString substitute(const QString &);
    static QStringList substitutes(const QString &);
    static QStringList substitutions();
    static void insertSubstitution(const QString &, const QString &);
    static void insertSubstitutions(const QString &, const QStringList &);
    static void removeSubstitutions(const QString &);
    static void initialize();
    static void cleanup();
    static void cacheStatistics();
    QString defaultFamily() const;
    QFont resolve(const QFont &) const;
    bool bold() const;
    void setBold(bool enable);
    bool italic() const;
    void setItalic(bool b);

    enum Capitalization
    {
        MixedCase,
        AllUppercase,
        AllLowercase,
        SmallCaps,
        Capitalize,
    };

    enum SpacingType
    {
        PercentageSpacing,
        AbsoluteSpacing,
    };

    qreal letterSpacing() const;
    QFont::SpacingType letterSpacingType() const;
    void setLetterSpacing(QFont::SpacingType type, qreal spacing);
    qreal wordSpacing() const;
    void setWordSpacing(qreal spacing);
    void setCapitalization(QFont::Capitalization);
    QFont::Capitalization capitalization() const;

    enum HintingPreference
    {
        PreferDefaultHinting,
        PreferNoHinting,
        PreferVerticalHinting,
        PreferFullHinting,
    };

    QString styleName() const;
    void setStyleName(const QString &styleName);
    void setHintingPreference(QFont::HintingPreference hintingPreference);
    QFont::HintingPreference hintingPreference() const;
    void swap(QFont &other /Constrained/);
    Py_hash_t __hash__() const;
%MethodCode
        sipRes = qHash(*sipCpp);
%End

    QStringList families() const;
    void setFamilies(const QStringList &);
%If (Qt_6_7_0 -)
    void setFeature(QFont::Tag tag, quint32 value);
%End
%If (Qt_6_6_0 - Qt_6_7_0)
    void setFeature(quint32 tag, quint32 value);
%End
%If (Qt_6_6_0 - Qt_6_7_0)
    void setFeature(const char *feature /Encoding="None"/, quint32 value);
%End
%If (Qt_6_7_0 -)
    void unsetFeature(QFont::Tag tag);
%End
%If (Qt_6_6_0 - Qt_6_7_0)
    void unsetFeature(const char *feature /Encoding="None"/);
%End
%If (Qt_6_6_0 - Qt_6_7_0)
    void unsetFeature(quint32 tag);
%End
%If (Qt_6_7_0 -)
    quint32 featureValue(QFont::Tag tag) const;
%End
%If (Qt_6_6_0 - Qt_6_7_0)
    quint32 featureValue(quint32 tag) const;
%End
%If (Qt_6_7_0 -)
    bool isFeatureSet(QFont::Tag tag) const;
%End
%If (Qt_6_6_0 - Qt_6_7_0)
    bool isFeatureSet(quint32 tag) const;
%End
%If (Qt_6_7_0 -)
    QList<QFont::Tag> featureTags() const;
%End
%If (Qt_6_6_0 - Qt_6_7_0)
    QList<unsigned int> featureTags() const;
%End
%If (Qt_6_6_0 -)
    void clearFeatures();
%End
%If (Qt_6_6_0 - Qt_6_7_0)
    static QByteArray tagToString(quint32 tag);
%End
%If (Qt_6_6_0 - Qt_6_7_0)
    static quint32 stringToTag(const char *tagString /Encoding="None"/);
%End
%If (Qt_6_7_0 -)

    struct Tag
    {
%TypeHeaderCode
#include <qfont.h>
%End

        Tag();
        Tag(QAnyStringView view);
%MethodCode
            // This is the easiest way to implement this ctor.
            std::optional<::QFont::Tag> opt_tag = ::QFont::Tag::fromString(*a0);
            
            if (opt_tag.has_value())
                sipCpp = new ::QFont::Tag(opt_tag.value());
            else
                sipCpp = new ::QFont::Tag;
%End

        bool isValid() const;
        quint32 value() const;
        QByteArray toString() const;
        static std::optional<QFont::Tag> fromValue(quint32 value);
        static std::optional<QFont::Tag> fromString(QAnyStringView view);
        Py_hash_t __hash__() const;
%MethodCode
            sipRes = qHash(*sipCpp);
%End
    };

%End
%If (Qt_6_7_0 -)
    void setVariableAxis(QFont::Tag tag, float value);
%End
%If (Qt_6_7_0 -)
    void unsetVariableAxis(QFont::Tag tag);
%End
%If (Qt_6_7_0 -)
    bool isVariableAxisSet(QFont::Tag tag) const;
%End
%If (Qt_6_7_0 -)
    float variableAxisValue(QFont::Tag tag) const;
%End
%If (Qt_6_7_0 -)
    void clearVariableAxes();
%End
%If (Qt_6_7_0 -)
    QList<QFont::Tag> variableAxisTags() const;
%End
};

QDataStream &operator<<(QDataStream &, const QFont &) /ReleaseGIL/;
QDataStream &operator>>(QDataStream &, QFont & /Constrained/) /ReleaseGIL/;
%If (Qt_6_7_0 -)
QDataStream &operator<<(QDataStream &, QFont::Tag) /ReleaseGIL/;
%End
%If (Qt_6_7_0 -)
QDataStream &operator>>(QDataStream &, QFont::Tag & /Constrained/) /ReleaseGIL/;
%End
%If (Qt_6_7_0 -)
bool operator>=(const QFont::Tag &lhs, const QFont::Tag &rhs);
%End
%If (Qt_6_7_0 -)
bool operator<=(const QFont::Tag &lhs, const QFont::Tag &rhs);
%End
%If (Qt_6_7_0 -)
bool operator>(const QFont::Tag &lhs, const QFont::Tag &rhs);
%End
%If (Qt_6_7_0 -)
bool operator<(const QFont::Tag &lhs, const QFont::Tag &rhs);
%End
%If (Qt_6_7_0 -)
bool operator!=(const QFont::Tag &lhs, const QFont::Tag &rhs);
%End
%If (Qt_6_7_0 -)
bool operator==(const QFont::Tag &lhs, const QFont::Tag &rhs);
%End