Windows default font

This commit is contained in:
Niklas Mischkulnig 2018-06-04 12:25:48 +02:00
parent e114e71741
commit 9561e87d49
2 changed files with 38 additions and 39 deletions

View File

@ -106,16 +106,15 @@ static void handlerDraw(uiAreaHandler *a, uiArea *area, uiAreaDrawParams *p)
} else {
uiFontButtonFont(fontButton, &defaultFont);
}
printf("%s\n", defaultFont.Family);
params.DefaultFont = &defaultFont;
params.Width = p->AreaWidth;
params.Align = (uiDrawTextAlign) uiComboboxSelected(alignment);
textLayout = uiDrawNewTextLayout(&params);
uiDrawText(p->Context, textLayout, 0, 0);
uiDrawFreeTextLayout(textLayout);
if(!useSystemFont) {
//TODO RENAME?
uiFreeFontButtonFont(&defaultFont);
}
}
static void handlerMouseEvent(uiAreaHandler *a, uiArea *area, uiAreaMouseEvent *e)

View File

@ -535,9 +535,8 @@ void uiDrawTextLayoutExtents(uiDrawTextLayout *tl, double *width, double *height
*height = metrics.height;
}
uiDrawTextFont *uiDrawLoadDefaultFont()
void uiDrawLoadDefaultFont(uiFontDescriptor *f)
{
uiDrawTextFont *font;
fontCollection *collection;
IDWriteGdiInterop *gdi;
IDWriteFont *dwfont;
@ -562,19 +561,20 @@ uiDrawTextFont *uiDrawLoadDefaultFont()
hr = dwfont->GetFontFamily(&dwfamily);
if (hr != S_OK)
logHRESULT(L"error loading font family", hr);
collection = loadFontCollection();
family = fontCollectionFamilyName(collection, dwfamily);
collection = uiprivLoadFontCollection();
family = uiprivFontCollectionFamilyName(collection, dwfamily);
pixels = GetDeviceCaps(GetDC(NULL), LOGPIXELSY);
if (pixels == 0)
logLastError(L"error getting device caps");
size = abs(metrics.lfMessageFont.lfHeight) * 72 / pixels;
font = mkTextFont(dwfont, FALSE, family, FALSE, size);
uiprivFontDescriptorFromIDWriteFont(dwfont, f);
f->Family = toUTF8(family);
f->Size = size;
fontCollectionFree(collection);
uiprivFree(family);
uiprivFontCollectionFree(collection);
dwfamily->Release();
gdi->Release();
return font;
}