Qt6: updated C bindings v.6.2.2, changes in QFontDatabase, added QFont_setHintingPreference

This commit is contained in:
Željan Rikalo 2022-11-19 18:15:25 +01:00
parent 500cb5812f
commit 1d09c01275
6 changed files with 171 additions and 166 deletions

View File

@ -10,13 +10,13 @@
# Binding Release Version 6.2.3.1 against Qt6 6.2 LTS release.
# Binding Release Version 6.2.2 against Qt6 6.2 LTS release.
win32:VERSION = 6.2.1.0
else:VERSION = 6.2.1
win32:VERSION = 6.2.2.0
else:VERSION = 6.2.2
VER_MAJ = 6
VER_MIN = 2
VER_PAT = 1
VER_PAT = 2
win32:VERSION_PE_HEADER = 6.2
QT += gui printsupport

View File

@ -11,164 +11,140 @@
#include "qfontdatabase_c.h"
void QFontDatabase_standardSizes(PPtrIntArray retval)
{
QList<int> t_retval;
t_retval = QFontDatabase::standardSizes();
copyQListTemplateToPtrIntArray(t_retval, retval);
}
QFontDatabaseH QFontDatabase_Create()
{
return (QFontDatabaseH) new QFontDatabase();
}
void QFontDatabase_Destroy(QFontDatabaseH handle)
{
delete (QFontDatabase *)handle;
}
void QFontDatabase_writingSystems(QFontDatabaseH handle, PPtrIntArray retval)
void QFontDatabase_writingSystems(PPtrIntArray retval)
{
QList<QFontDatabase::WritingSystem> t_retval;
t_retval = ((QFontDatabase *)handle)->writingSystems();
t_retval = QFontDatabase::writingSystems();
copyQListTemplateToPtrIntArray(t_retval, retval);
}
void QFontDatabase_writingSystems2(QFontDatabaseH handle, PPtrIntArray retval, PWideString family)
void QFontDatabase_writingSystems2(PPtrIntArray retval, PWideString family)
{
QList<QFontDatabase::WritingSystem> t_retval;
QString t_family;
copyPWideStringToQString(family, t_family);
t_retval = ((QFontDatabase *)handle)->writingSystems(t_family);
t_retval = QFontDatabase::writingSystems(t_family);
copyQListTemplateToPtrIntArray(t_retval, retval);
}
void QFontDatabase_families(QFontDatabaseH handle, QStringListH retval, QFontDatabase::WritingSystem writingSystem)
void QFontDatabase_families(QStringListH retval, QFontDatabase::WritingSystem writingSystem)
{
*(QStringList *)retval = ((QFontDatabase *)handle)->families(writingSystem);
*(QStringList *)retval = QFontDatabase::families(writingSystem);
}
void QFontDatabase_styles(QFontDatabaseH handle, QStringListH retval, PWideString family)
void QFontDatabase_styles(QStringListH retval, PWideString family)
{
QString t_family;
copyPWideStringToQString(family, t_family);
*(QStringList *)retval = ((QFontDatabase *)handle)->styles(t_family);
*(QStringList *)retval = QFontDatabase::styles(t_family);
}
void QFontDatabase_pointSizes(QFontDatabaseH handle, PPtrIntArray retval, PWideString family, PWideString style)
void QFontDatabase_pointSizes(PPtrIntArray retval, PWideString family, PWideString style)
{
QList<int> t_retval;
QString t_family;
QString t_style;
copyPWideStringToQString(family, t_family);
copyPWideStringToQString(style, t_style);
t_retval = ((QFontDatabase *)handle)->pointSizes(t_family, t_style);
t_retval = QFontDatabase::pointSizes(t_family, t_style);
copyQListTemplateToPtrIntArray(t_retval, retval);
}
void QFontDatabase_smoothSizes(QFontDatabaseH handle, PPtrIntArray retval, PWideString family, PWideString style)
void QFontDatabase_smoothSizes(PPtrIntArray retval, PWideString family, PWideString style)
{
QList<int> t_retval;
QString t_family;
QString t_style;
copyPWideStringToQString(family, t_family);
copyPWideStringToQString(style, t_style);
t_retval = ((QFontDatabase *)handle)->smoothSizes(t_family, t_style);
t_retval = QFontDatabase::smoothSizes(t_family, t_style);
copyQListTemplateToPtrIntArray(t_retval, retval);
}
void QFontDatabase_styleString(QFontDatabaseH handle, PWideString retval, const QFontH font)
void QFontDatabase_styleString(PWideString retval, const QFontH font)
{
QString t_retval;
t_retval = ((QFontDatabase *)handle)->styleString(*(const QFont*)font);
t_retval = QFontDatabase::styleString(*(const QFont*)font);
copyQStringToPWideString(t_retval, retval);
}
void QFontDatabase_styleString2(QFontDatabaseH handle, PWideString retval, const QFontInfoH fontInfo)
void QFontDatabase_styleString2(PWideString retval, const QFontInfoH fontInfo)
{
QString t_retval;
t_retval = ((QFontDatabase *)handle)->styleString(*(const QFontInfo*)fontInfo);
t_retval = QFontDatabase::styleString(*(const QFontInfo*)fontInfo);
copyQStringToPWideString(t_retval, retval);
}
void QFontDatabase_font(QFontDatabaseH handle, QFontH retval, PWideString family, PWideString style, int pointSize)
void QFontDatabase_font(QFontH retval, PWideString family, PWideString style, int pointSize)
{
QString t_family;
QString t_style;
copyPWideStringToQString(family, t_family);
copyPWideStringToQString(style, t_style);
*(QFont *)retval = ((QFontDatabase *)handle)->font(t_family, t_style, pointSize);
*(QFont *)retval = QFontDatabase::font(t_family, t_style, pointSize);
}
bool QFontDatabase_isBitmapScalable(QFontDatabaseH handle, PWideString family, PWideString style)
bool QFontDatabase_isBitmapScalable(PWideString family, PWideString style)
{
QString t_family;
QString t_style;
copyPWideStringToQString(family, t_family);
copyPWideStringToQString(style, t_style);
return (bool) ((QFontDatabase *)handle)->isBitmapScalable(t_family, t_style);
return (bool) QFontDatabase::isBitmapScalable(t_family, t_style);
}
bool QFontDatabase_isSmoothlyScalable(QFontDatabaseH handle, PWideString family, PWideString style)
bool QFontDatabase_isSmoothlyScalable(PWideString family, PWideString style)
{
QString t_family;
QString t_style;
copyPWideStringToQString(family, t_family);
copyPWideStringToQString(style, t_style);
return (bool) ((QFontDatabase *)handle)->isSmoothlyScalable(t_family, t_style);
return (bool) QFontDatabase::isSmoothlyScalable(t_family, t_style);
}
bool QFontDatabase_isScalable(QFontDatabaseH handle, PWideString family, PWideString style)
bool QFontDatabase_isScalable(PWideString family, PWideString style)
{
QString t_family;
QString t_style;
copyPWideStringToQString(family, t_family);
copyPWideStringToQString(style, t_style);
return (bool) ((QFontDatabase *)handle)->isScalable(t_family, t_style);
return (bool) QFontDatabase::isScalable(t_family, t_style);
}
bool QFontDatabase_isFixedPitch(QFontDatabaseH handle, PWideString family, PWideString style)
bool QFontDatabase_isFixedPitch(PWideString family, PWideString style)
{
QString t_family;
QString t_style;
copyPWideStringToQString(family, t_family);
copyPWideStringToQString(style, t_style);
return (bool) ((QFontDatabase *)handle)->isFixedPitch(t_family, t_style);
return (bool) QFontDatabase::isFixedPitch(t_family, t_style);
}
bool QFontDatabase_italic(QFontDatabaseH handle, PWideString family, PWideString style)
bool QFontDatabase_italic(PWideString family, PWideString style)
{
QString t_family;
QString t_style;
copyPWideStringToQString(family, t_family);
copyPWideStringToQString(style, t_style);
return (bool) ((QFontDatabase *)handle)->italic(t_family, t_style);
return (bool) QFontDatabase::italic(t_family, t_style);
}
bool QFontDatabase_bold(QFontDatabaseH handle, PWideString family, PWideString style)
bool QFontDatabase_bold(PWideString family, PWideString style)
{
QString t_family;
QString t_style;
copyPWideStringToQString(family, t_family);
copyPWideStringToQString(style, t_style);
return (bool) ((QFontDatabase *)handle)->bold(t_family, t_style);
return (bool) QFontDatabase::bold(t_family, t_style);
}
int QFontDatabase_weight(QFontDatabaseH handle, PWideString family, PWideString style)
int QFontDatabase_weight(PWideString family, PWideString style)
{
QString t_family;
QString t_style;
copyPWideStringToQString(family, t_family);
copyPWideStringToQString(style, t_style);
return (int) ((QFontDatabase *)handle)->weight(t_family, t_style);
}
bool QFontDatabase_hasFamily(QFontDatabaseH handle, PWideString family)
{
QString t_family;
copyPWideStringToQString(family, t_family);
return (bool) ((QFontDatabase *)handle)->hasFamily(t_family);
return (int) QFontDatabase::weight(t_family, t_style);
}
void QFontDatabase_writingSystemName(PWideString retval, QFontDatabase::WritingSystem writingSystem)
@ -212,3 +188,22 @@ bool QFontDatabase_removeAllApplicationFonts()
return (bool) QFontDatabase::removeAllApplicationFonts();
}
bool QFontDatabase_isPrivateFamily(PWideString family)
{
QString t_family;
copyPWideStringToQString(family, t_family);
return (bool) QFontDatabase::isPrivateFamily(t_family);
}
void QFontDatabase_standardSizes(PPtrIntArray retval)
{
QList<int> t_retval;
t_retval = QFontDatabase::standardSizes();
copyQListTemplateToPtrIntArray(t_retval, retval);
}
void QFontDatabase_systemFont(QFontDatabase::SystemFont font, QFontH retval)
{
*(QFont *)retval = QFontDatabase::systemFont(font);
}

View File

@ -15,26 +15,22 @@
#include <QtGui>
#include "pascalbind.h"
C_EXPORT void QFontDatabase_standardSizes(PPtrIntArray retval);
C_EXPORT QFontDatabaseH QFontDatabase_Create();
C_EXPORT void QFontDatabase_Destroy(QFontDatabaseH handle);
C_EXPORT void QFontDatabase_writingSystems(QFontDatabaseH handle, PPtrIntArray retval);
C_EXPORT void QFontDatabase_writingSystems2(QFontDatabaseH handle, PPtrIntArray retval, PWideString family);
C_EXPORT void QFontDatabase_families(QFontDatabaseH handle, QStringListH retval, QFontDatabase::WritingSystem writingSystem);
C_EXPORT void QFontDatabase_styles(QFontDatabaseH handle, QStringListH retval, PWideString family);
C_EXPORT void QFontDatabase_pointSizes(QFontDatabaseH handle, PPtrIntArray retval, PWideString family, PWideString style);
C_EXPORT void QFontDatabase_smoothSizes(QFontDatabaseH handle, PPtrIntArray retval, PWideString family, PWideString style);
C_EXPORT void QFontDatabase_styleString(QFontDatabaseH handle, PWideString retval, const QFontH font);
C_EXPORT void QFontDatabase_styleString2(QFontDatabaseH handle, PWideString retval, const QFontInfoH fontInfo);
C_EXPORT void QFontDatabase_font(QFontDatabaseH handle, QFontH retval, PWideString family, PWideString style, int pointSize);
C_EXPORT bool QFontDatabase_isBitmapScalable(QFontDatabaseH handle, PWideString family, PWideString style);
C_EXPORT bool QFontDatabase_isSmoothlyScalable(QFontDatabaseH handle, PWideString family, PWideString style);
C_EXPORT bool QFontDatabase_isScalable(QFontDatabaseH handle, PWideString family, PWideString style);
C_EXPORT bool QFontDatabase_isFixedPitch(QFontDatabaseH handle, PWideString family, PWideString style);
C_EXPORT bool QFontDatabase_italic(QFontDatabaseH handle, PWideString family, PWideString style);
C_EXPORT bool QFontDatabase_bold(QFontDatabaseH handle, PWideString family, PWideString style);
C_EXPORT int QFontDatabase_weight(QFontDatabaseH handle, PWideString family, PWideString style);
C_EXPORT bool QFontDatabase_hasFamily(QFontDatabaseH handle, PWideString family);
C_EXPORT void QFontDatabase_writingSystems(PPtrIntArray retval);
C_EXPORT void QFontDatabase_writingSystems2(PPtrIntArray retval, PWideString family);
C_EXPORT void QFontDatabase_families(QStringListH retval, QFontDatabase::WritingSystem writingSystem);
C_EXPORT void QFontDatabase_styles(QStringListH retval, PWideString family);
C_EXPORT void QFontDatabase_pointSizes(PPtrIntArray retval, PWideString family, PWideString style);
C_EXPORT void QFontDatabase_smoothSizes(PPtrIntArray retval, PWideString family, PWideString style);
C_EXPORT void QFontDatabase_styleString(PWideString retval, const QFontH font);
C_EXPORT void QFontDatabase_styleString2(PWideString retval, const QFontInfoH fontInfo);
C_EXPORT void QFontDatabase_font(QFontH retval, PWideString family, PWideString style, int pointSize);
C_EXPORT bool QFontDatabase_isBitmapScalable(PWideString family, PWideString style);
C_EXPORT bool QFontDatabase_isSmoothlyScalable(PWideString family, PWideString style);
C_EXPORT bool QFontDatabase_isScalable(PWideString family, PWideString style);
C_EXPORT bool QFontDatabase_isFixedPitch(PWideString family, PWideString style);
C_EXPORT bool QFontDatabase_italic(PWideString family, PWideString style);
C_EXPORT bool QFontDatabase_bold(PWideString family, PWideString style);
C_EXPORT int QFontDatabase_weight(PWideString family, PWideString style);
C_EXPORT void QFontDatabase_writingSystemName(PWideString retval, QFontDatabase::WritingSystem writingSystem);
C_EXPORT void QFontDatabase_writingSystemSample(PWideString retval, QFontDatabase::WritingSystem writingSystem);
C_EXPORT int QFontDatabase_addApplicationFont(PWideString fileName);
@ -42,5 +38,8 @@ C_EXPORT int QFontDatabase_addApplicationFontFromData(const QByteArrayH fontData
C_EXPORT void QFontDatabase_applicationFontFamilies(QStringListH retval, int id);
C_EXPORT bool QFontDatabase_removeApplicationFont(int id);
C_EXPORT bool QFontDatabase_removeAllApplicationFonts();
C_EXPORT bool QFontDatabase_isPrivateFamily(PWideString family);
C_EXPORT void QFontDatabase_standardSizes(PPtrIntArray retval);
C_EXPORT void QFontDatabase_systemFont(QFontDatabase::SystemFont font, QFontH retval);
#endif

View File

@ -8333,27 +8333,29 @@ const
QFontDatabaseNko = 33 { $21 };
QFontDatabaseWritingSystemsCount = 34 { $22 };
type
QFontDataBaseSystemFont = (QFontDatabaseGeneralFont, QFontDatabaseFixedFont,
QFontDatabaseTitleFont, QFontDatabaseSmallestReadableFont);
procedure QFontDatabase_standardSizes(retval: PPtrIntArray); cdecl; external Qt6PasLib name 'QFontDatabase_standardSizes';
function QFontDatabase_Create(): QFontDatabaseH; cdecl; external Qt6PasLib name 'QFontDatabase_Create';
procedure QFontDatabase_Destroy(handle: QFontDatabaseH); cdecl; external Qt6PasLib name 'QFontDatabase_Destroy';
procedure QFontDatabase_writingSystems(handle: QFontDatabaseH; retval: PPtrIntArray); cdecl; external Qt6PasLib name 'QFontDatabase_writingSystems';
procedure QFontDatabase_writingSystems(handle: QFontDatabaseH; retval: PPtrIntArray; family: PWideString); cdecl; external Qt6PasLib name 'QFontDatabase_writingSystems2';
procedure QFontDatabase_families(handle: QFontDatabaseH; retval: QStringListH; writingSystem: QFontDatabaseWritingSystem = QFontDatabaseAny); cdecl; external Qt6PasLib name 'QFontDatabase_families';
procedure QFontDatabase_styles(handle: QFontDatabaseH; retval: QStringListH; family: PWideString); cdecl; external Qt6PasLib name 'QFontDatabase_styles';
procedure QFontDatabase_pointSizes(handle: QFontDatabaseH; retval: PPtrIntArray; family: PWideString; style: PWideString = nil); cdecl; external Qt6PasLib name 'QFontDatabase_pointSizes';
procedure QFontDatabase_smoothSizes(handle: QFontDatabaseH; retval: PPtrIntArray; family: PWideString; style: PWideString); cdecl; external Qt6PasLib name 'QFontDatabase_smoothSizes';
procedure QFontDatabase_styleString(handle: QFontDatabaseH; retval: PWideString; font: QFontH); cdecl; external Qt6PasLib name 'QFontDatabase_styleString';
procedure QFontDatabase_styleString(handle: QFontDatabaseH; retval: PWideString; fontInfo: QFontInfoH); cdecl; external Qt6PasLib name 'QFontDatabase_styleString2';
procedure QFontDatabase_font(handle: QFontDatabaseH; retval: QFontH; family: PWideString; style: PWideString; pointSize: Integer); cdecl; external Qt6PasLib name 'QFontDatabase_font';
function QFontDatabase_isBitmapScalable(handle: QFontDatabaseH; family: PWideString; style: PWideString = nil): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_isBitmapScalable';
function QFontDatabase_isSmoothlyScalable(handle: QFontDatabaseH; family: PWideString; style: PWideString = nil): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_isSmoothlyScalable';
function QFontDatabase_isScalable(handle: QFontDatabaseH; family: PWideString; style: PWideString = nil): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_isScalable';
function QFontDatabase_isFixedPitch(handle: QFontDatabaseH; family: PWideString; style: PWideString = nil): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_isFixedPitch';
function QFontDatabase_italic(handle: QFontDatabaseH; family: PWideString; style: PWideString): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_italic';
function QFontDatabase_bold(handle: QFontDatabaseH; family: PWideString; style: PWideString): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_bold';
function QFontDatabase_weight(handle: QFontDatabaseH; family: PWideString; style: PWideString): Integer; cdecl; external Qt6PasLib name 'QFontDatabase_weight';
function QFontDatabase_hasFamily(handle: QFontDatabaseH; family: PWideString): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_hasFamily';
procedure QFontDatabase_writingSystems(retval: PPtrIntArray); cdecl; external Qt6PasLib name 'QFontDatabase_writingSystems';
procedure QFontDatabase_writingSystems(retval: PPtrIntArray; family: PWideString); cdecl; external Qt6PasLib name 'QFontDatabase_writingSystems2';
procedure QFontDatabase_families(retval: QStringListH; writingSystem: QFontDatabaseWritingSystem = QFontDatabaseAny); cdecl; external Qt6PasLib name 'QFontDatabase_families';
procedure QFontDatabase_styles(retval: QStringListH; family: PWideString); cdecl; external Qt6PasLib name 'QFontDatabase_styles';
procedure QFontDatabase_pointSizes(retval: PPtrIntArray; family: PWideString; style: PWideString = nil); cdecl; external Qt6PasLib name 'QFontDatabase_pointSizes';
procedure QFontDatabase_smoothSizes(retval: PPtrIntArray; family: PWideString; style: PWideString); cdecl; external Qt6PasLib name 'QFontDatabase_smoothSizes';
procedure QFontDatabase_styleString(retval: PWideString; font: QFontH); cdecl; external Qt6PasLib name 'QFontDatabase_styleString';
procedure QFontDatabase_styleString(retval: PWideString; fontInfo: QFontInfoH); cdecl; external Qt6PasLib name 'QFontDatabase_styleString2';
procedure QFontDatabase_font(retval: QFontH; family: PWideString; style: PWideString; pointSize: Integer); cdecl; external Qt6PasLib name 'QFontDatabase_font';
function QFontDatabase_isBitmapScalable(family: PWideString; style: PWideString = nil): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_isBitmapScalable';
function QFontDatabase_isSmoothlyScalable(family: PWideString; style: PWideString = nil): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_isSmoothlyScalable';
function QFontDatabase_isScalable(family: PWideString; style: PWideString = nil): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_isScalable';
function QFontDatabase_isFixedPitch(family: PWideString; style: PWideString = nil): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_isFixedPitch';
function QFontDatabase_italic(family: PWideString; style: PWideString): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_italic';
function QFontDatabase_bold(family: PWideString; style: PWideString): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_bold';
function QFontDatabase_weight(family: PWideString; style: PWideString): Integer; cdecl; external Qt6PasLib name 'QFontDatabase_weight';
function QFontDatabase_hasFamily(family: PWideString): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_hasFamily';
procedure QFontDatabase_writingSystemName(retval: PWideString; writingSystem: QFontDatabaseWritingSystem); cdecl; external Qt6PasLib name 'QFontDatabase_writingSystemName';
procedure QFontDatabase_writingSystemSample(retval: PWideString; writingSystem: QFontDatabaseWritingSystem); cdecl; external Qt6PasLib name 'QFontDatabase_writingSystemSample';
function QFontDatabase_addApplicationFont(fileName: PWideString): Integer; cdecl; external Qt6PasLib name 'QFontDatabase_addApplicationFont';
@ -8361,7 +8363,8 @@ function QFontDatabase_addApplicationFontFromData(fontData: QByteArrayH): Intege
procedure QFontDatabase_applicationFontFamilies(retval: QStringListH; id: Integer); cdecl; external Qt6PasLib name 'QFontDatabase_applicationFontFamilies';
function QFontDatabase_removeApplicationFont(id: Integer): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_removeApplicationFont';
function QFontDatabase_removeAllApplicationFonts(): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_removeAllApplicationFonts';
function QFontDatabase_supportsThreadedFontRendering(): Boolean; cdecl; external Qt6PasLib name 'QFontDatabase_supportsThreadedFontRendering';
function QFontDatabase_isPrivateFamily(): boolean; cdecl; external Qt6PasLib name 'QFontDatabase_isPrivateFamily';
function QFontDatabase_systemFont(sysfont: QFontDataBaseSystemFont; retval: QFontH): boolean; cdecl; external Qt6PasLib name 'QFontDatabase_systemFont';
type

View File

@ -185,6 +185,7 @@ type
function getUnderline: Boolean;
function getStrikeOut: Boolean;
function getFamily: WideString;
function getHintingPreference: QFontHintingPreference;
function getStyleStategy: QFontStyleStrategy;
procedure setPointSize(p1: Integer);
@ -196,6 +197,7 @@ type
procedure setStrikeOut(p1: Boolean);
procedure setRawName(p1: string);
procedure setFamily(p1: string);
procedure setHintingPreference(pref: QFontHintingPreference);
procedure setStyleStrategy(s: QFontStyleStrategy);
procedure family(retval: PWideString);
function fixedPitch: Boolean;
@ -1671,6 +1673,11 @@ begin
QFont_family(FHandle, @Result);
end;
function TQtFont.getHintingPreference: QFontHintingPreference;
begin
Result := QFont_hintingPreference(FHandle);
end;
function TQtFont.getStyleStategy: QFontStyleStrategy;
begin
if FHandle = nil then
@ -1722,6 +1729,11 @@ begin
QFont_setFamily(FHandle, @Str);
end;
procedure TQtFont.setHintingPreference(pref: QFontHintingPreference);
begin
QFont_setHintingPreference(FHandle, pref);
end;
procedure TQtFont.setStyleStrategy(s: QFontStyleStrategy);
begin
QFont_setStyleStrategy(FHandle, s);

View File

@ -591,6 +591,7 @@ begin
if LogFont.lfQuality <= High(QStyleStategy) then
QtFont.setStyleStrategy(QStyleStategy[LogFont.lfQuality]);
Result := HFONT(QtFont);
except
Result := 0;
@ -1713,7 +1714,6 @@ var
Metric: TNewTextMetricEx;
FontList: TStringList;
FontType: Integer;
FontDB: QFontDatabaseH;
i: Integer;
y: Integer;
AStyle: String;
@ -1732,7 +1732,7 @@ var
Result := -1;
StrLst := QStringList_create;
try
QFontDatabase_families(FontDB, StrLst, AWritingSystem);
QFontDatabase_families(StrLst, AWritingSystem);
Result := QStringList_size(StrLst);
for j := 0 to Result - 1 do
begin
@ -1759,7 +1759,7 @@ var
NewList := QStringList_create();
try
QFontDatabase_families(FontDB, StrLst, AWritingSystem);
QFontDatabase_families(StrLst, AWritingSystem);
for j := 0 to QStringList_size(StrLst) - 1 do
begin
QStringList_at(StrLst, @WStr, j);
@ -1768,12 +1768,12 @@ var
case APitch of
FIXED_PITCH, MONO_FONT:
begin
if QFontDatabase_isFixedPitch(FontDB, @WStr) then
if QFontDatabase_isFixedPitch(@WStr) then
QStringList_append(NewList, @WStr);
end;
VARIABLE_PITCH:
begin
if QFontDatabase_isScalable(FontDB, @WStr) then
if QFontDatabase_isScalable(@WStr) then
QStringList_append(NewList, @WStr);
end;
end;
@ -1826,7 +1826,7 @@ var
if Assigned(CharSetList) then
CharSetList.Clear;
WStr := UTF8ToUTF16(AFontName);
QFontDatabase_writingSystems(FontDB, @Arr, @WStr);
QFontDatabase_writingSystems(@Arr, @WStr);
Result := length(Arr) > 0;
for j := 0 to High(Arr) do
begin
@ -1861,7 +1861,7 @@ var
AFontType := AFontType and not TRUETYPE_FONTTYPE;
QStringList_clear(StylesList);
QFontDatabase_styles(FontDB, StylesList, @WStr);
QFontDatabase_styles(StylesList, @WStr);
AStyle := '';
Result := QStringList_size(StylesList);
@ -1880,72 +1880,68 @@ begin
{$endif}
Result := 0;
Metric.ntmentm.ntmAvgWidth := 0; // just to shutup compiler
FontDB := QFontDatabase_create();
try
if (lpLogFont^.lfCharSet = DEFAULT_CHARSET) and
(lpLogFont^.lfFaceName= '') and
(lpLogFont^.lfPitchAndFamily = 0) then
begin
FontType := 0;
FontList := TStringList.create;
try
if QtGetFontFamiliesDefault(FontList) > 0 then
begin
for i := 0 to FontList.Count - 1 do
begin
EnumLogFont.elfLogFont.lfFaceName := FontList[i];
Result := Callback(EnumLogFont, Metric, FontType, LParam);
end;
end;
finally
FontList.free;
end;
end else
begin
Result := 0;
FontType := TRUETYPE_FONTTYPE;
FontList := TStringList.create;
StylesList := QStringList_create();
ScriptList := QStringList_create();
CharsetList := TFPList.Create;
try
if QtGetFontFamilies(FontList, lpLogFont^.lfPitchAndFamily,
lpLogFont^.lfFaceName, CharsetToQtCharSet(lpLogFont^.lfCharSet)) > 0 then
begin
StylesList := QStringList_create();
for i := 0 to FontList.Count - 1 do
begin
EnumLogFont.elfLogFont.lfFaceName := FontList[i];
EnumLogFont.elfLogFont.lfPitchAndFamily := lpLogFont^.lfPitchAndFamily;
EnumLogFont.elfFullName := FontList[i];
StylesCount := FillLogFontA(FontList[i], EnumLogFont.elfLogFont, Metric, FontType,
AStyle);
if (lpLogFont^.lfCharSet = DEFAULT_CHARSET) and
(lpLogFont^.lfFaceName= '') and
(lpLogFont^.lfPitchAndFamily = 0) then
begin
FontType := 0;
FontList := TStringList.create;
try
if QtGetFontFamiliesDefault(FontList) > 0 then
begin
for i := 0 to FontList.Count - 1 do
begin
EnumLogFont.elfLogFont.lfFaceName := FontList[i];
Result := Callback(EnumLogFont, Metric, FontType, LParam);
end;
end;
finally
FontList.free;
end;
end else
begin
Result := 0;
FontType := TRUETYPE_FONTTYPE;
FontList := TStringList.create;
StylesList := QStringList_create();
ScriptList := QStringList_create();
CharsetList := TFPList.Create;
try
if QtGetFontFamilies(FontList, lpLogFont^.lfPitchAndFamily,
lpLogFont^.lfFaceName, CharsetToQtCharSet(lpLogFont^.lfCharSet)) > 0 then
begin
StylesList := QStringList_create();
for i := 0 to FontList.Count - 1 do
begin
EnumLogFont.elfLogFont.lfFaceName := FontList[i];
EnumLogFont.elfLogFont.lfPitchAndFamily := lpLogFont^.lfPitchAndFamily;
EnumLogFont.elfFullName := FontList[i];
StylesCount := FillLogFontA(FontList[i], EnumLogFont.elfLogFont, Metric, FontType,
AStyle);
EnumLogFont.elfStyle := AStyle;
if CharSetList.Count > 0 then
EnumLogFont.elfLogFont.lfCharSet := {%H-}PtrUInt(CharsetList.Items[0]);
Result := Callback(EnumLogFont, Metric, FontType, LParam);
for y := 1 to StylesCount - 1 do
begin
AStyle := GetStyleAt(y);
EnumLogFont.elfStyle := AStyle;
if CharSetList.Count > 0 then
EnumLogFont.elfLogFont.lfCharSet := {%H-}PtrUInt(CharsetList.Items[0]);
Result := Callback(EnumLogFont, Metric, FontType, LParam);
for y := 1 to StylesCount - 1 do
begin
AStyle := GetStyleAt(y);
EnumLogFont.elfStyle := AStyle;
Result := Callback(EnumLogFont, Metric, FontType, LParam);
end;
for y := 1 to CharsetList.Count - 1 do
begin
EnumLogFont.elfLogFont.lfCharSet := {%H-}PtrUInt(CharsetList.Items[y]);
Result := Callback(EnumLogFont, Metric, FontType, LParam);
end;
end;
for y := 1 to CharsetList.Count - 1 do
begin
EnumLogFont.elfLogFont.lfCharSet := {%H-}PtrUInt(CharsetList.Items[y]);
Result := Callback(EnumLogFont, Metric, FontType, LParam);
end;
end;
finally
FontList.free;
QStringList_destroy(StylesList);
CharSetList.Free;
end;
finally
FontList.free;
QStringList_destroy(StylesList);
CharSetList.Free;
end;
finally
QFontDatabase_destroy(FontDB);
end;
end;