summaryrefslogtreecommitdiff
path: root/alf/alf.cpp
diff options
context:
space:
mode:
authorJonas Kümmerlin <jonas@kuemmerlin.eu>2020-04-14 17:12:52 +0200
committerJonas Kümmerlin <jonas@kuemmerlin.eu>2020-04-14 17:12:52 +0200
commit0f6698f3b9f95552b2ad4a9dcd271941303067cd (patch)
treeb5f68af0ecb6c1fe7d26cf6ea0992f9324f01b76 /alf/alf.cpp
parent0948993ec9e08e170d1d22f2c7176b00bd987103 (diff)
use Win95 fonts and colors even when running on Win32s/NT3.51
Diffstat (limited to 'alf/alf.cpp')
-rw-r--r--alf/alf.cpp49
1 files changed, 20 insertions, 29 deletions
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