mirror of
https://github.com/reactos/reactos.git
synced 2024-07-01 02:10:07 +00:00
- Moved the loading of font names from user32.dll to win32k.sys.
- Moved the window metrics values from hivesys.inf to hivedef.inf. - In case of failure of getting the font values from registry, use default values. - Removed user32.dll dependency on advapi32.dll. - Removed the "UGLY HACK" code, because it really isn't true that ReactOS doesn't handle fonts with negative height. svn path=/trunk/; revision=8563
This commit is contained in:
parent
fceb231b0e
commit
5c13959830
|
@ -64,4 +64,31 @@ HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP",
|
|||
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP","BuildNumber",0x00010001,0x00000A28
|
||||
HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP","PlatformId",0x00010001,0x00000002
|
||||
|
||||
; GUI Setup
|
||||
|
||||
HKCU, "Control Panel\Desktop\WindowMetrics","CaptionFont",0x00000001,f5,ff,ff,ff,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,bc,02,00,00,00,00,00,00,00,00,00,00,42,00,69,00,74,00,73,00,74,\
|
||||
00,72,00,65,00,61,00,6d,00,20,00,56,00,65,00,72,00,61,00,20,00,53,00,61,00,6e,00,73,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||
HKCU, "Control Panel\Desktop\WindowMetrics","IconFont",0x00000001,f5,ff,ff,ff,00,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,00,00,00,00,00,42,00,69,00,74,00,73,00,74,00,\
|
||||
72,00,65,00,61,00,6d,00,20,00,56,00,65,00,72,00,61,00,20,00,53,00,61,00,6e,00,73,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||
HKCU, "Control Panel\Desktop\WindowMetrics","MenuFont",0x00000001,f5,ff,ff,ff,00,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,00,00,00,00,00,42,00,69,00,74,00,73,00,74,00,\
|
||||
72,00,65,00,61,00,6d,00,20,00,56,00,65,00,72,00,61,00,20,00,53,00,61,00,6e,00,73,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||
HKCU, "Control Panel\Desktop\WindowMetrics","MessageFont",0x00000001,f5,ff,ff,ff,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,00,00,00,00,00,42,00,69,00,74,00,73,00,74,\
|
||||
00,72,00,65,00,61,00,6d,00,20,00,56,00,65,00,72,00,61,00,20,00,53,00,61,00,6e,00,73,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||
HKCU, "Control Panel\Desktop\WindowMetrics","SmCaptionFont",0x00000001,f5,ff,ff,ff,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,bc,02,00,00,00,00,00,00,00,00,00,00,42,00,69,00,74,00,73,00,\
|
||||
74,00,72,00,65,00,61,00,6d,00,20,00,56,00,65,00,72,00,61,00,20,00,53,00,61,00,6e,00,73,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||
HKCU, "Control Panel\Desktop\WindowMetrics","IconFont",0x00000001,f5,ff,ff,ff,00,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,00,00,00,00,00,42,00,69,00,74,00,73,00,74,00,\
|
||||
72,00,65,00,61,00,6d,00,20,00,56,00,65,00,72,00,61,00,20,00,53,00,61,00,6e,00,73,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||
|
||||
; EOF
|
||||
|
|
|
@ -555,34 +555,6 @@ HKLM,"SYSTEM\Setup","SetupType",0x00010001,0x00000000
|
|||
HKLM,"SYSTEM\Setup","SystemPartition",0x00000000,"\Device\Harddisk0\Partition1"
|
||||
HKLM,"SYSTEM\Setup","SystemSetupInProgress",0x00010001,0x00000000
|
||||
|
||||
; GUI Setup
|
||||
|
||||
HKCU, "Control Panel\Desktop\WindowMetrics","CaptionFont",0x00000001,f5,ff,ff,ff,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,bc,02,00,00,00,00,00,00,00,00,00,00,42,00,69,00,74,00,73,00,74,\
|
||||
00,72,00,65,00,61,00,6d,00,20,00,56,00,65,00,72,00,61,00,20,00,53,00,61,00,6e,00,73,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||
HKCU, "Control Panel\Desktop\WindowMetrics","IconFont",0x00000001,f5,ff,ff,ff,00,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,00,00,00,00,00,42,00,69,00,74,00,73,00,74,00,\
|
||||
72,00,65,00,61,00,6d,00,20,00,56,00,65,00,72,00,61,00,20,00,53,00,61,00,6e,00,73,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||
HKCU, "Control Panel\Desktop\WindowMetrics","MenuFont",0x00000001,f5,ff,ff,ff,00,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,00,00,00,00,00,42,00,69,00,74,00,73,00,74,00,\
|
||||
72,00,65,00,61,00,6d,00,20,00,56,00,65,00,72,00,61,00,20,00,53,00,61,00,6e,00,73,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||
HKCU, "Control Panel\Desktop\WindowMetrics","MessageFont",0x00000001,f5,ff,ff,ff,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,00,00,00,00,00,42,00,69,00,74,00,73,00,74,\
|
||||
00,72,00,65,00,61,00,6d,00,20,00,56,00,65,00,72,00,61,00,20,00,53,00,61,00,6e,00,73,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||
HKCU, "Control Panel\Desktop\WindowMetrics","SmCaptionFont",0x00000001,f5,ff,ff,ff,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,bc,02,00,00,00,00,00,00,00,00,00,00,42,00,69,00,74,00,73,00,\
|
||||
74,00,72,00,65,00,61,00,6d,00,20,00,56,00,65,00,72,00,61,00,20,00,53,00,61,00,6e,00,73,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||
HKCU, "Control Panel\Desktop\WindowMetrics","IconFont",0x00000001,f5,ff,ff,ff,00,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,00,00,00,00,00,42,00,69,00,74,00,73,00,74,00,\
|
||||
72,00,65,00,61,00,6d,00,20,00,56,00,65,00,72,00,61,00,20,00,53,00,61,00,6e,00,73,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||
|
||||
|
||||
; ----------------------------- KJS Init ----------------------------
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Kdb","kjsinit",0x00010000,\
|
||||
"function init(v) { var rk = '\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Kdb'; eval(System.regread(rk,v)); } for( i = 1; i <= 40; i++ ) { init((new Number(i)).toString()); }"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $Id: Makefile,v 1.35 2004/02/16 01:30:38 rcampbell Exp $
|
||||
# $Id: Makefile,v 1.36 2004/03/07 11:59:43 navaraf Exp $
|
||||
|
||||
PATH_TO_TOP = ../..
|
||||
|
||||
|
@ -8,7 +8,7 @@ TARGET_NAME = user32
|
|||
|
||||
TARGET_BASE = 0x77e70000
|
||||
|
||||
TARGET_SDKLIBS = libwine.a ntdll.a kernel32.a gdi32.a rosrtl.a advapi32.a
|
||||
TARGET_SDKLIBS = libwine.a ntdll.a kernel32.a gdi32.a rosrtl.a
|
||||
|
||||
TARGET_CFLAGS = \
|
||||
-I./include \
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: desktop.c,v 1.30 2004/02/28 03:02:08 rcampbell Exp $
|
||||
/* $Id: desktop.c,v 1.31 2004/03/07 11:59:43 navaraf Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS user32.dll
|
||||
|
@ -89,28 +89,6 @@ SystemParametersInfoA(UINT uiAction,
|
|||
}
|
||||
|
||||
|
||||
BOOL IntGetFontMetricSetting(LPCWSTR lpKey, PLOGFONTW font)
|
||||
{
|
||||
HKEY hKey;
|
||||
DWORD dwType = REG_BINARY;
|
||||
DWORD dwSize = sizeof(LOGFONTW);
|
||||
BOOL bRet = FALSE;
|
||||
if ( RegOpenKeyExW(HKEY_CURRENT_USER, L"Control Panel\\Desktop\\WindowMetrics", 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS )
|
||||
{
|
||||
if ( RegQueryValueExW(hKey, lpKey, NULL, &dwType, (LPBYTE)font, &dwSize) == ERROR_SUCCESS )
|
||||
bRet = TRUE;
|
||||
|
||||
if (font->lfHeight < 0)
|
||||
{
|
||||
DbgPrint("WARNING! WARNING! WARNING! Ugly hack alert: ROS doesn't handle pixel sizes for fonts correctly. As a result we must convert to point sizes.\n");
|
||||
font->lfHeight = abs(font->lfHeight);
|
||||
}
|
||||
}
|
||||
|
||||
RegCloseKey(hKey);
|
||||
return bRet;
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
@ -120,59 +98,7 @@ SystemParametersInfoW(UINT uiAction,
|
|||
PVOID pvParam,
|
||||
UINT fWinIni)
|
||||
{
|
||||
static LOGFONTW IconFont;
|
||||
static NONCLIENTMETRICSW pMetrics;
|
||||
static BOOL bInitialized = FALSE;
|
||||
|
||||
if (!bInitialized)
|
||||
{
|
||||
ZeroMemory(&IconFont, sizeof(LOGFONTW));
|
||||
ZeroMemory(&pMetrics, sizeof(NONCLIENTMETRICSW));
|
||||
|
||||
IntGetFontMetricSetting(L"CaptionFont", &pMetrics.lfCaptionFont);
|
||||
IntGetFontMetricSetting(L"SmCaptionFont", &pMetrics.lfSmCaptionFont);
|
||||
IntGetFontMetricSetting(L"MenuFont", &pMetrics.lfMenuFont);
|
||||
IntGetFontMetricSetting(L"StatusFont", &pMetrics.lfStatusFont);
|
||||
IntGetFontMetricSetting(L"MessageFont", &pMetrics.lfMessageFont);
|
||||
IntGetFontMetricSetting(L"IconFont", &IconFont);
|
||||
|
||||
pMetrics.iBorderWidth = 1;
|
||||
pMetrics.iScrollWidth = NtUserGetSystemMetrics(SM_CXVSCROLL);
|
||||
pMetrics.iScrollHeight = NtUserGetSystemMetrics(SM_CYHSCROLL);
|
||||
pMetrics.iCaptionWidth = NtUserGetSystemMetrics(SM_CXSIZE);
|
||||
pMetrics.iCaptionHeight = NtUserGetSystemMetrics(SM_CYSIZE);
|
||||
pMetrics.iSmCaptionWidth = NtUserGetSystemMetrics(SM_CXSMSIZE);
|
||||
pMetrics.iSmCaptionHeight = NtUserGetSystemMetrics(SM_CYSMSIZE);
|
||||
pMetrics.iMenuWidth = NtUserGetSystemMetrics(SM_CXMENUSIZE);
|
||||
pMetrics.iMenuHeight = NtUserGetSystemMetrics(SM_CYMENUSIZE);
|
||||
pMetrics.cbSize = sizeof(LPNONCLIENTMETRICSW);
|
||||
|
||||
bInitialized = TRUE;
|
||||
}
|
||||
switch(uiAction)
|
||||
{
|
||||
|
||||
case SPI_GETICONTITLELOGFONT:
|
||||
{
|
||||
memcpy(pvParam, (PVOID)&IconFont, sizeof(LOGFONTW));
|
||||
return TRUE;
|
||||
}
|
||||
case SPI_GETNONCLIENTMETRICS:
|
||||
{
|
||||
/* FIXME: Is this windows default behavior? */
|
||||
LPNONCLIENTMETRICSW lpMetrics = (LPNONCLIENTMETRICSW)pvParam;
|
||||
if ( lpMetrics->cbSize != sizeof(NONCLIENTMETRICSW) ||
|
||||
uiParam != sizeof(NONCLIENTMETRICSW ))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
DbgPrint("FontName: %S, Size: %i\n",pMetrics.lfMessageFont.lfFaceName, pMetrics.lfMessageFont.lfHeight);
|
||||
memcpy(pvParam, (PVOID)&pMetrics, sizeof(NONCLIENTMETRICSW));
|
||||
return TRUE;
|
||||
}
|
||||
default:
|
||||
return NtUserSystemParametersInfo(uiAction, uiParam, pvParam, fWinIni);
|
||||
}
|
||||
return NtUserSystemParametersInfo(uiAction, uiParam, pvParam, fWinIni);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: misc.c,v 1.53 2004/02/19 21:12:09 weiden Exp $
|
||||
/* $Id: misc.c,v 1.54 2004/03/07 11:59:43 navaraf Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -442,6 +442,36 @@ NtUserGetThreadState(
|
|||
return 0;
|
||||
}
|
||||
|
||||
VOID FASTCALL
|
||||
IntGetFontMetricSetting(LPWSTR lpValueName, PLOGFONTW font)
|
||||
{
|
||||
RTL_QUERY_REGISTRY_TABLE QueryTable[2];
|
||||
NTSTATUS Status;
|
||||
static LOGFONTW DefaultFont = {
|
||||
11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET,
|
||||
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
|
||||
L"Bitstream Vera Sans"
|
||||
};
|
||||
|
||||
RtlZeroMemory(&QueryTable, sizeof(QueryTable));
|
||||
|
||||
QueryTable[0].Name = lpValueName;
|
||||
QueryTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_REQUIRED;
|
||||
QueryTable[0].EntryContext = font;
|
||||
|
||||
Status = RtlQueryRegistryValues(
|
||||
RTL_REGISTRY_USER,
|
||||
L"Control Panel\\Desktop\\WindowMetrics",
|
||||
QueryTable,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
RtlCopyMemory(font, &DefaultFont, sizeof(LOGFONTW));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
@ -456,7 +486,37 @@ NtUserSystemParametersInfo(
|
|||
static BOOL GradientCaptions = TRUE;
|
||||
NTSTATUS Status;
|
||||
PWINSTATION_OBJECT WinStaObject;
|
||||
|
||||
static BOOL bInitialized = FALSE;
|
||||
static LOGFONTW IconFont;
|
||||
static NONCLIENTMETRICSW pMetrics;
|
||||
|
||||
if (!bInitialized)
|
||||
{
|
||||
ZeroMemory(&IconFont, sizeof(LOGFONTW));
|
||||
ZeroMemory(&pMetrics, sizeof(NONCLIENTMETRICSW));
|
||||
|
||||
IntGetFontMetricSetting(L"CaptionFont", &pMetrics.lfCaptionFont);
|
||||
IntGetFontMetricSetting(L"SmCaptionFont", &pMetrics.lfSmCaptionFont);
|
||||
IntGetFontMetricSetting(L"MenuFont", &pMetrics.lfMenuFont);
|
||||
IntGetFontMetricSetting(L"StatusFont", &pMetrics.lfStatusFont);
|
||||
IntGetFontMetricSetting(L"MessageFont", &pMetrics.lfMessageFont);
|
||||
IntGetFontMetricSetting(L"IconFont", &IconFont);
|
||||
|
||||
pMetrics.iBorderWidth = 1;
|
||||
pMetrics.iScrollWidth = NtUserGetSystemMetrics(SM_CXVSCROLL);
|
||||
pMetrics.iScrollHeight = NtUserGetSystemMetrics(SM_CYHSCROLL);
|
||||
pMetrics.iCaptionWidth = NtUserGetSystemMetrics(SM_CXSIZE);
|
||||
pMetrics.iCaptionHeight = NtUserGetSystemMetrics(SM_CYSIZE);
|
||||
pMetrics.iSmCaptionWidth = NtUserGetSystemMetrics(SM_CXSMSIZE);
|
||||
pMetrics.iSmCaptionHeight = NtUserGetSystemMetrics(SM_CYSMSIZE);
|
||||
pMetrics.iMenuWidth = NtUserGetSystemMetrics(SM_CXMENUSIZE);
|
||||
pMetrics.iMenuHeight = NtUserGetSystemMetrics(SM_CYMENUSIZE);
|
||||
pMetrics.cbSize = sizeof(LPNONCLIENTMETRICSW);
|
||||
|
||||
bInitialized = TRUE;
|
||||
}
|
||||
|
||||
switch(uiAction)
|
||||
{
|
||||
case SPI_SETDOUBLECLKWIDTH:
|
||||
|
@ -594,6 +654,24 @@ NtUserSystemParametersInfo(
|
|||
}
|
||||
return TRUE;
|
||||
}
|
||||
case SPI_GETICONTITLELOGFONT:
|
||||
{
|
||||
MmCopyToCaller(pvParam, (PVOID)&IconFont, sizeof(LOGFONTW));
|
||||
return TRUE;
|
||||
}
|
||||
case SPI_GETNONCLIENTMETRICS:
|
||||
{
|
||||
/* FIXME: Is this windows default behavior? */
|
||||
LPNONCLIENTMETRICSW lpMetrics = (LPNONCLIENTMETRICSW)pvParam;
|
||||
if ( lpMetrics->cbSize != sizeof(NONCLIENTMETRICSW) ||
|
||||
uiParam != sizeof(NONCLIENTMETRICSW ))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
DPRINT("FontName: %S, Size: %i\n",pMetrics.lfMessageFont.lfFaceName, pMetrics.lfMessageFont.lfHeight);
|
||||
MmCopyToCaller(pvParam, (PVOID)&pMetrics, sizeof(NONCLIENTMETRICSW));
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue