From 0f6698f3b9f95552b2ad4a9dcd271941303067cd Mon Sep 17 00:00:00 2001 From: Jonas Kümmerlin Date: Tue, 14 Apr 2020 17:12:52 +0200 Subject: use Win95 fonts and colors even when running on Win32s/NT3.51 --- alf/alf.cpp | 49 ++++++++++++++++++++----------------------------- 1 file changed, 20 insertions(+), 29 deletions(-) (limited to 'alf/alf.cpp') diff --git a/alf/alf.cpp b/alf/alf.cpp index c59cdbb..b4d9052 100644 --- a/alf/alf.cpp +++ b/alf/alf.cpp @@ -57,35 +57,29 @@ ALF_UpdateFontsPriv(HWND win, ALFWindowPriv *priv) { priv->fonts.dpi = ALF_Compat_GetDpiForWindow(win); - if (LOBYTE(LOWORD(GetVersion())) < 4) { - // NT 3.x uses System font for everything, we copy that - priv->fonts.hMessageFont = (HFONT)GetStockObject(SYSTEM_FONT); - GetObject(priv->fonts.hMessageFont, sizeof(priv->fonts.lfMessageFont), &priv->fonts.lfMessageFont); - } else { - // XXX: SystemParametersInfoForDpi is Unicode-only and needs Vista+ NONCLIENTMETRICS, - ALF_NONCLIENTMETRICSW_VISTA ncm; - ZeroMemory(&ncm, sizeof(ncm)); - ncm.cbSize = sizeof(ncm); + // XXX: SystemParametersInfoForDpi is Unicode-only and needs Vista+ NONCLIENTMETRICS, + ALF_NONCLIENTMETRICSW_VISTA ncm; + ZeroMemory(&ncm, sizeof(ncm)); + ncm.cbSize = sizeof(ncm); - if (ALF_Compat_SystemParametersInfoForDpi(SPI_GETNONCLIENTMETRICS, ncm.cbSize, &ncm, 0, priv->fonts.dpi)) { + if (ALF_Compat_SystemParametersInfoForDpi(SPI_GETNONCLIENTMETRICS, ncm.cbSize, &ncm, 0, priv->fonts.dpi)) { #ifdef UNICODE - priv->fonts.lfMessageFont = ncm.lfMessageFont; + priv->fonts.lfMessageFont = ncm.lfMessageFont; #else - ALF_Compat_LogFontWtoA(&ncm.lfMessageFont, &priv->fonts.lfMessageFont); + ALF_Compat_LogFontWtoA(&ncm.lfMessageFont, &priv->fonts.lfMessageFont); #endif - } else { - // FIXME! fallback to default font, 8pt MS Shell Dlg - ZeroMemory(&priv->fonts.lfMessageFont, sizeof(priv->fonts.lfMessageFont)); + } else { + // FIXME! fallback to default font, 8pt MS Shell Dlg + ZeroMemory(&priv->fonts.lfMessageFont, sizeof(priv->fonts.lfMessageFont)); - priv->fonts.lfMessageFont.lfHeight = -MulDiv(8, priv->fonts.dpi, 72); - lstrcpy(priv->fonts.lfMessageFont.lfFaceName, TEXT("MS Shell Dlg")); - } + priv->fonts.lfMessageFont.lfHeight = -MulDiv(8, priv->fonts.dpi, 72); + lstrcpy(priv->fonts.lfMessageFont.lfFaceName, TEXT("MS Shell Dlg")); + } - if (priv->fonts.hMessageFont) { - DeleteObject(priv->fonts.hMessageFont); - } - priv->fonts.hMessageFont = CreateFontIndirect(&priv->fonts.lfMessageFont); + if (priv->fonts.hMessageFont) { + DeleteObject(priv->fonts.hMessageFont); } + priv->fonts.hMessageFont = CreateFontIndirect(&priv->fonts.lfMessageFont); ALF_ApplyFontsPriv(win, priv); } @@ -470,6 +464,8 @@ ALF_BuildUniqueName(TCHAR *buf, const TCHAR *prefix, ULONG_PTR uniquifier) uniquifier >>= 4; i--; } + + buf[prefixlen + numlen] = 0; } LPTSTR @@ -493,12 +489,7 @@ ALF_RegisterWindowClass(HINSTANCE hInstance, const ALFWindowClassParams *params) cls.style = params->classStyle; cls.hInstance = hInstance; cls.hCursor = LoadCursor(NULL, (LPTSTR)IDC_ARROW); - if (LOBYTE(LOWORD(GetVersion())) >= 4) { - cls.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1); - } else { - // NT 3.x has white dialog backgrounds - cls.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); - } + cls.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1); cls.lpszClassName = classNamePtr; cls.cbWndExtra = sizeof(void*); cls.cbClsExtra = sizeof(void*); @@ -696,7 +687,7 @@ ALF_Text(HWND hwnd) } } - return NULL; + return ALF_New(TCHAR, 1); } TCHAR * // free with ALF_Free -- cgit v1.2.3