Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qwindowsfontdatabasebase_p.h
Go to the documentation of this file.
1
// Copyright (C) 2020 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
QWINDOWSFONTDATABASEBASE_P_H
5
#
define
QWINDOWSFONTDATABASEBASE_P_H
6
7
//
8
// W A R N I N G
9
// -------------
10
//
11
// This file is not part of the Qt API. It exists purely as an
12
// implementation detail. This header file may change from version to
13
// version without notice, or even be removed.
14
//
15
// We mean it.
16
//
17
18
#
include
<
qpa
/
qplatformfontdatabase
.
h
>
19
#
include
<
QtGui
/
private
/
qtgui
-
config_p
.
h
>
20
#
include
<
QtCore
/
QSharedPointer
>
21
#
include
<
QtCore
/
QLoggingCategory
>
22
#
include
<
QtCore
/
qt_windows
.
h
>
23
24
#
if
QT_CONFIG
(
directwrite
)
25
struct
IDWriteFactory;
26
struct
IDWriteGdiInterop;
27
struct
IDWriteFontFace;
28
#
endif
29
30
QT_BEGIN_NAMESPACE
31
32
#
if
QT_CONFIG
(
directwrite
)
33
class
QCustomFontFileLoader;
34
#
endif
35
36
class
QWindowsFontEngineData
37
{
38
Q_DISABLE_COPY_MOVE(QWindowsFontEngineData)
39
public
:
40
QWindowsFontEngineData();
41
~QWindowsFontEngineData();
42
43
uint pow_gamma[256];
44
45
bool
clearTypeEnabled =
false
;
46
qreal fontSmoothingGamma;
47
HDC hdc = 0;
48
#
if
QT_CONFIG
(
directwrite
)
49
IDWriteFactory *directWriteFactory =
nullptr
;
50
IDWriteGdiInterop *directWriteGdiInterop =
nullptr
;
51
#
endif
52
};
53
54
class
Q_GUI_EXPORT
QWindowsFontDatabaseBase
:
public
QPlatformFontDatabase
55
{
56
public
:
57
QWindowsFontDatabaseBase();
58
~QWindowsFontDatabaseBase() override;
59
60
QFontEngine *fontEngine(
const
QFontDef &fontDef,
void
*handle) override;
61
QFontEngine *fontEngine(
const
QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference) override;
62
63
void
invalidate() override;
64
65
static
int
defaultVerticalDPI();
66
67
static
QSharedPointer<QWindowsFontEngineData> data();
68
#
if
QT_CONFIG
(
directwrite
)
69
static
void
createDirectWriteFactory(IDWriteFactory **factory);
70
#
endif
71
static
QFont systemDefaultFont();
72
static
HFONT systemFont();
73
static
LOGFONT fontDefToLOGFONT(
const
QFontDef &fontDef,
const
QString &faceName);
74
static
QFont LOGFONT_to_QFont(
const
LOGFONT& lf,
int
verticalDPI = 0);
75
76
static
QString familyForStyleHint(QFont::StyleHint styleHint);
77
static
QStringList extraTryFontsForFamily(
const
QString &family);
78
static
QStringList familiesForScript(QFontDatabasePrivate::ExtendedScript script);
79
80
class
FontTable{};
81
class
EmbeddedFont
82
{
83
public
:
84
EmbeddedFont(
const
QByteArray &fontData) : m_fontData(fontData) {}
85
86
QString changeFamilyName(
const
QString &newFamilyName);
87
QByteArray data()
const
{
return
m_fontData; }
88
void
updateFromOS2Table(QFontEngine *fontEngine);
89
FontTable *tableDirectoryEntry(
const
QByteArray &tagName);
90
QString familyName(FontTable *nameTableDirectory =
nullptr
);
91
92
private
:
93
QByteArray m_fontData;
94
};
95
96
QFontDef sanitizeRequest(QFontDef request)
const
;
97
98
protected
:
99
100
#
if
QT_CONFIG
(
directwrite
)
101
QList<IDWriteFontFace *> createDirectWriteFaces(
const
QByteArray &fontData,
102
const
QString &filename,
103
bool
queryVariations =
true
)
const
;
104
IDWriteFontFace *createDirectWriteFace(
const
QByteArray &fontData);
105
#
endif
106
107
private
:
108
static
bool
init(QSharedPointer<QWindowsFontEngineData> data);
109
110
#
if
QT_CONFIG
(
directwrite
)
111
mutable
std::unique_ptr<QCustomFontFileLoader> m_fontFileLoader;
112
#
endif
113
};
114
115
QT_END_NAMESPACE
116
117
#
endif
// QWINDOWSFONTDATABASEBASE_P_H
QWindowsDirectWriteFontDatabase
Definition
qwindowsdirectwritefontdatabase_p.h:30
QWindowsFontDatabaseBase
Definition
qwindowsfontdatabasebase_p.h:55
QWindowsFontDatabase
Font database for Windows.
Definition
qwindowsfontdatabase_p.h:32
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
E_NOT_SUFFICIENT_BUFFER
#define E_NOT_SUFFICIENT_BUFFER
Definition
qwindowsdirectwritefontdatabase.cpp:23
QT_REQUIRE_CONFIG
QT_REQUIRE_CONFIG(directwrite3)
qt_getUShort
quint16 qt_getUShort(const unsigned char *p)
Definition
qwindowsfontdatabase_p.h:119
qt_getCanonicalFontNames
QFontNames qt_getCanonicalFontNames(const LOGFONT &lf)
Definition
qwindowsfontdatabase.cpp:406
qt_getEnglishName
QString qt_getEnglishName(const QString &familyName, bool includeStyle=false)
Definition
qwindowsfontdatabase.cpp:351
qHash
size_t qHash(const FontAndStyle &key, size_t seed) noexcept
Definition
qwindowsfontdatabase_p.h:157
qt_localizedName
bool qt_localizedName(const QString &name)
Definition
qwindowsfontdatabase.cpp:195
DirectWriteScope
Definition
qwindowsdirectwritefontdatabase.cpp:27
DirectWriteScope::~DirectWriteScope
~DirectWriteScope()
Definition
qwindowsdirectwritefontdatabase.cpp:29
DirectWriteScope::operator&
T ** operator&()
Definition
qwindowsdirectwritefontdatabase.cpp:34
DirectWriteScope::operator->
T * operator->()
Definition
qwindowsdirectwritefontdatabase.cpp:39
DirectWriteScope::DirectWriteScope
DirectWriteScope(T *res=nullptr)
Definition
qwindowsdirectwritefontdatabase.cpp:28
DirectWriteScope::operator*
T * operator*()
Definition
qwindowsdirectwritefontdatabase.cpp:44
FontAndStyle
Definition
qwindowsfontdatabase_p.h:148
FontAndStyle::font
QString font
Definition
qwindowsfontdatabase_p.h:149
FontAndStyle::style
QString style
Definition
qwindowsfontdatabase_p.h:150
FontAndStyle::operator!=
friend bool operator!=(const FontAndStyle &lhs, const FontAndStyle &rhs) noexcept
Definition
qwindowsfontdatabase_p.h:154
FontAndStyle::operator==
friend bool operator==(const FontAndStyle &lhs, const FontAndStyle &rhs) noexcept
Definition
qwindowsfontdatabase_p.h:152
QFontNames
Definition
qwindowsfontdatabase_p.h:129
QFontNames::style
QString style
Definition
qwindowsfontdatabase_p.h:131
QFontNames::name
QString name
Definition
qwindowsfontdatabase_p.h:130
QFontNames::preferredStyle
QString preferredStyle
Definition
qwindowsfontdatabase_p.h:133
QFontNames::preferredName
QString preferredName
Definition
qwindowsfontdatabase_p.h:132
QFontValues
Definition
qwindowsfontdatabase_p.h:137
QFontValues::isItalic
bool isItalic
Definition
qwindowsfontdatabase_p.h:139
QFontValues::isOverstruck
bool isOverstruck
Definition
qwindowsfontdatabase_p.h:140
QFontValues::weight
quint16 weight
Definition
qwindowsfontdatabase_p.h:138
QFontValues::isUnderlined
bool isUnderlined
Definition
qwindowsfontdatabase_p.h:141
qtbase
src
gui
text
windows
qwindowsfontdatabasebase_p.h
Generated on
for Qt by
1.18.0