user32: Move SystemParametersInfo16 to user16.c.

This commit is contained in:
Alexandre Julliard 2009-12-11 20:59:04 +01:00
parent fb20226475
commit 57e9244ab6
2 changed files with 131 additions and 145 deletions

View File

@ -34,7 +34,7 @@
#include "winnls.h"
#include "wingdi.h"
#include "winreg.h"
#include "wine/winuser16.h"
#include "wine/wingdi16.h"
#include "winerror.h"
#include "controls.h"
@ -387,25 +387,6 @@ HBRUSH SYSCOLOR_55AABrush = 0;
extern void CDECL __wine_make_gdi_object_system( HGDIOBJ handle, BOOL set );
/* This function is a copy of the one in objects/font.c */
static void SYSPARAMS_LogFont32ATo16( const LOGFONTA* font32, LPLOGFONT16 font16 )
{
font16->lfHeight = font32->lfHeight;
font16->lfWidth = font32->lfWidth;
font16->lfEscapement = font32->lfEscapement;
font16->lfOrientation = font32->lfOrientation;
font16->lfWeight = font32->lfWeight;
font16->lfItalic = font32->lfItalic;
font16->lfUnderline = font32->lfUnderline;
font16->lfStrikeOut = font32->lfStrikeOut;
font16->lfCharSet = font32->lfCharSet;
font16->lfOutPrecision = font32->lfOutPrecision;
font16->lfClipPrecision = font32->lfClipPrecision;
font16->lfQuality = font32->lfQuality;
font16->lfPitchAndFamily = font32->lfPitchAndFamily;
lstrcpynA( font16->lfFaceName, font32->lfFaceName, LF_FACESIZE );
}
static void SYSPARAMS_LogFont16To32W( const LOGFONT16 *font16, LPLOGFONTW font32 )
{
font32->lfHeight = font16->lfHeight;
@ -463,24 +444,6 @@ static void SYSPARAMS_LogFont32ATo32W( const LOGFONTA* font32A, LPLOGFONTW font3
font32W->lfFaceName[LF_FACESIZE-1] = 0;
}
static void SYSPARAMS_NonClientMetrics32ATo16( const NONCLIENTMETRICSA* lpnm32, LPNONCLIENTMETRICS16 lpnm16 )
{
lpnm16->iBorderWidth = lpnm32->iBorderWidth;
lpnm16->iScrollWidth = lpnm32->iScrollWidth;
lpnm16->iScrollHeight = lpnm32->iScrollHeight;
lpnm16->iCaptionWidth = lpnm32->iCaptionWidth;
lpnm16->iCaptionHeight = lpnm32->iCaptionHeight;
SYSPARAMS_LogFont32ATo16( &lpnm32->lfCaptionFont, &lpnm16->lfCaptionFont );
lpnm16->iSmCaptionWidth = lpnm32->iSmCaptionWidth;
lpnm16->iSmCaptionHeight = lpnm32->iSmCaptionHeight;
SYSPARAMS_LogFont32ATo16( &lpnm32->lfSmCaptionFont, &lpnm16->lfSmCaptionFont );
lpnm16->iMenuWidth = lpnm32->iMenuWidth;
lpnm16->iMenuHeight = lpnm32->iMenuHeight;
SYSPARAMS_LogFont32ATo16( &lpnm32->lfMenuFont, &lpnm16->lfMenuFont );
SYSPARAMS_LogFont32ATo16( &lpnm32->lfStatusFont, &lpnm16->lfStatusFont );
SYSPARAMS_LogFont32ATo16( &lpnm32->lfMessageFont, &lpnm16->lfMessageFont );
}
static void SYSPARAMS_NonClientMetrics32WTo32A( const NONCLIENTMETRICSW* lpnm32W, LPNONCLIENTMETRICSA lpnm32A )
{
lpnm32A->iBorderWidth = lpnm32W->iBorderWidth;
@ -2527,113 +2490,6 @@ BOOL WINAPI SystemParametersInfoW( UINT uiAction, UINT uiParam,
}
/***********************************************************************
* SystemParametersInfo (USER.483)
*/
BOOL16 WINAPI SystemParametersInfo16( UINT16 uAction, UINT16 uParam,
LPVOID lpvParam, UINT16 fuWinIni )
{
BOOL16 ret;
TRACE("(%u, %u, %p, %u)\n", uAction, uParam, lpvParam, fuWinIni);
switch (uAction)
{
case SPI_GETBEEP: /* 1 */
case SPI_GETSCREENSAVEACTIVE: /* 16 */
case SPI_GETICONTITLEWRAP: /* 25 */
case SPI_GETMENUDROPALIGNMENT: /* 27 */
case SPI_GETFASTTASKSWITCH: /* 35 */
case SPI_GETDRAGFULLWINDOWS: /* 38 WINVER >= 0x0400 */
{
BOOL tmp;
ret = SystemParametersInfoA( uAction, uParam, lpvParam ? &tmp : NULL, fuWinIni );
if (ret && lpvParam)
*(BOOL16 *)lpvParam = tmp;
break;
}
case SPI_GETBORDER: /* 5 */
case SPI_ICONHORIZONTALSPACING: /* 13 */
case SPI_GETSCREENSAVETIMEOUT: /* 14 */
case SPI_GETGRIDGRANULARITY: /* 18 */
case SPI_GETKEYBOARDDELAY: /* 22 */
case SPI_ICONVERTICALSPACING: /* 24 */
{
INT tmp;
ret = SystemParametersInfoA( uAction, uParam, lpvParam ? &tmp : NULL, fuWinIni );
if (ret && lpvParam)
*(INT16 *)lpvParam = tmp;
break;
}
case SPI_GETKEYBOARDSPEED: /* 10 */
{
DWORD tmp;
ret = SystemParametersInfoA( uAction, uParam, lpvParam ? &tmp : NULL, fuWinIni );
if (ret && lpvParam)
*(WORD *)lpvParam = tmp;
break;
}
case SPI_GETICONTITLELOGFONT: /* 31 */
{
LOGFONTA tmp;
ret = SystemParametersInfoA( uAction, uParam, lpvParam ? &tmp : NULL, fuWinIni );
if (ret && lpvParam)
SYSPARAMS_LogFont32ATo16( &tmp, (LPLOGFONT16)lpvParam );
break;
}
case SPI_GETNONCLIENTMETRICS: /* 41 WINVER >= 0x400 */
{
NONCLIENTMETRICSA tmp;
LPNONCLIENTMETRICS16 lpnm16 = (LPNONCLIENTMETRICS16)lpvParam;
if (lpnm16 && lpnm16->cbSize == sizeof(NONCLIENTMETRICS16))
{
tmp.cbSize = sizeof(NONCLIENTMETRICSA);
ret = SystemParametersInfoA( uAction, uParam, &tmp, fuWinIni );
if (ret)
SYSPARAMS_NonClientMetrics32ATo16( &tmp, lpnm16 );
}
else /* winfile 95 sets cbSize to 340 */
ret = SystemParametersInfoA( uAction, uParam, lpvParam, fuWinIni );
break;
}
case SPI_GETWORKAREA: /* 48 WINVER >= 0x400 */
{
RECT tmp;
ret = SystemParametersInfoA( uAction, uParam, lpvParam ? &tmp : NULL, fuWinIni );
if (ret && lpvParam)
{
RECT16 *r16 = lpvParam;
r16->left = tmp.left;
r16->top = tmp.top;
r16->right = tmp.right;
r16->bottom = tmp.bottom;
}
break;
}
case SPI_GETMOUSEHOVERWIDTH: /* 98 _WIN32_WINNT >= 0x400 || _WIN32_WINDOW > 0x400 */
case SPI_GETMOUSEHOVERHEIGHT: /* 100 _WIN32_WINNT >= 0x400 || _WIN32_WINDOW > 0x400 */
case SPI_GETMOUSEHOVERTIME: /* 102 _WIN32_WINNT >= 0x400 || _WIN32_WINDOW > 0x400 */
{
UINT tmp;
ret = SystemParametersInfoA( uAction, uParam, lpvParam ? &tmp : NULL, fuWinIni );
if (ret && lpvParam)
*(UINT16 *)lpvParam = tmp;
break;
}
default:
ret = SystemParametersInfoA( uAction, uParam, lpvParam, fuWinIni );
}
return ret;
}
/***********************************************************************
* SystemParametersInfoA (USER32.@)
*/

View File

@ -113,6 +113,24 @@ static BOOL CALLBACK draw_state_callback( HDC hdc, LPARAM lparam, WPARAM wparam,
return LOWORD(ret);
}
/* This function is a copy of the one in objects/font.c */
static void logfont_32_to_16( const LOGFONTA* font32, LPLOGFONT16 font16 )
{
font16->lfHeight = font32->lfHeight;
font16->lfWidth = font32->lfWidth;
font16->lfEscapement = font32->lfEscapement;
font16->lfOrientation = font32->lfOrientation;
font16->lfWeight = font32->lfWeight;
font16->lfItalic = font32->lfItalic;
font16->lfUnderline = font32->lfUnderline;
font16->lfStrikeOut = font32->lfStrikeOut;
font16->lfCharSet = font32->lfCharSet;
font16->lfOutPrecision = font32->lfOutPrecision;
font16->lfClipPrecision = font32->lfClipPrecision;
font16->lfQuality = font32->lfQuality;
font16->lfPitchAndFamily = font32->lfPitchAndFamily;
lstrcpynA( font16->lfFaceName, font32->lfFaceName, LF_FACESIZE );
}
/**********************************************************************
* InitApp (USER.5)
@ -1908,6 +1926,118 @@ INT16 WINAPI GetKeyboardLayoutName16( LPSTR name )
}
/***********************************************************************
* SystemParametersInfo (USER.483)
*/
BOOL16 WINAPI SystemParametersInfo16( UINT16 uAction, UINT16 uParam,
LPVOID lpvParam, UINT16 fuWinIni )
{
BOOL16 ret;
TRACE("(%u, %u, %p, %u)\n", uAction, uParam, lpvParam, fuWinIni);
switch (uAction)
{
case SPI_GETBEEP:
case SPI_GETSCREENSAVEACTIVE:
case SPI_GETICONTITLEWRAP:
case SPI_GETMENUDROPALIGNMENT:
case SPI_GETFASTTASKSWITCH:
case SPI_GETDRAGFULLWINDOWS:
{
BOOL tmp;
ret = SystemParametersInfoA( uAction, uParam, lpvParam ? &tmp : NULL, fuWinIni );
if (ret && lpvParam) *(BOOL16 *)lpvParam = tmp;
break;
}
case SPI_GETBORDER:
case SPI_ICONHORIZONTALSPACING:
case SPI_GETSCREENSAVETIMEOUT:
case SPI_GETGRIDGRANULARITY:
case SPI_GETKEYBOARDDELAY:
case SPI_ICONVERTICALSPACING:
{
INT tmp;
ret = SystemParametersInfoA( uAction, uParam, lpvParam ? &tmp : NULL, fuWinIni );
if (ret && lpvParam) *(INT16 *)lpvParam = tmp;
break;
}
case SPI_GETKEYBOARDSPEED:
case SPI_GETMOUSEHOVERWIDTH:
case SPI_GETMOUSEHOVERHEIGHT:
case SPI_GETMOUSEHOVERTIME:
{
DWORD tmp;
ret = SystemParametersInfoA( uAction, uParam, lpvParam ? &tmp : NULL, fuWinIni );
if (ret && lpvParam) *(WORD *)lpvParam = tmp;
break;
}
case SPI_GETICONTITLELOGFONT:
{
LOGFONTA tmp;
ret = SystemParametersInfoA( uAction, uParam, lpvParam ? &tmp : NULL, fuWinIni );
if (ret && lpvParam) logfont_32_to_16( &tmp, (LPLOGFONT16)lpvParam );
break;
}
case SPI_GETNONCLIENTMETRICS:
{
NONCLIENTMETRICSA tmp;
LPNONCLIENTMETRICS16 lpnm16 = (LPNONCLIENTMETRICS16)lpvParam;
if (lpnm16 && lpnm16->cbSize == sizeof(NONCLIENTMETRICS16))
{
tmp.cbSize = sizeof(NONCLIENTMETRICSA);
ret = SystemParametersInfoA( uAction, uParam, &tmp, fuWinIni );
if (ret)
{
lpnm16->iBorderWidth = tmp.iBorderWidth;
lpnm16->iScrollWidth = tmp.iScrollWidth;
lpnm16->iScrollHeight = tmp.iScrollHeight;
lpnm16->iCaptionWidth = tmp.iCaptionWidth;
lpnm16->iCaptionHeight = tmp.iCaptionHeight;
lpnm16->iSmCaptionWidth = tmp.iSmCaptionWidth;
lpnm16->iSmCaptionHeight = tmp.iSmCaptionHeight;
lpnm16->iMenuWidth = tmp.iMenuWidth;
lpnm16->iMenuHeight = tmp.iMenuHeight;
logfont_32_to_16( &tmp.lfCaptionFont, &lpnm16->lfCaptionFont );
logfont_32_to_16( &tmp.lfSmCaptionFont, &lpnm16->lfSmCaptionFont );
logfont_32_to_16( &tmp.lfMenuFont, &lpnm16->lfMenuFont );
logfont_32_to_16( &tmp.lfStatusFont, &lpnm16->lfStatusFont );
logfont_32_to_16( &tmp.lfMessageFont, &lpnm16->lfMessageFont );
}
}
else /* winfile 95 sets cbSize to 340 */
ret = SystemParametersInfoA( uAction, uParam, lpvParam, fuWinIni );
break;
}
case SPI_GETWORKAREA:
{
RECT tmp;
ret = SystemParametersInfoA( uAction, uParam, lpvParam ? &tmp : NULL, fuWinIni );
if (ret && lpvParam)
{
RECT16 *r16 = lpvParam;
r16->left = tmp.left;
r16->top = tmp.top;
r16->right = tmp.right;
r16->bottom = tmp.bottom;
}
break;
}
default:
ret = SystemParametersInfoA( uAction, uParam, lpvParam, fuWinIni );
break;
}
return ret;
}
/***********************************************************************
* FormatMessage (USER.606)
*/