reactos/win32ss/user/ntuser/sysparams.h
Waritnan Sookbuntherng 1128447196 [WIN32K][DESK.CPL]: Add fit and fill background placement options (#28)
- WIN32K and DESK.CPL: Add fit and fill background placement options.
- DESK.CPL: Define wallpaper placement constants; update translations.
- WIN32K: Fix coding style.
CORE-13360
2017-10-13 21:44:02 +02:00

196 lines
4.3 KiB
C

#pragma once
// Create one struct
// Make usable for different users (multiple structs!)
#define SPI_TABLE1_MIN 1
#define SPI_TABLE1_MAX 119
#define SPI_TABLE2_MIN 4096
#define SPI_TABLE2_MAX 4171
#define SPI_TABLE3_MIN 8192
#define SPI_TABLE3_MAX 8215
#define SPIF_PROTECT 0x80000
typedef enum _USERPREFMASKS
{
UPM_ACTIVEWINDOWTRACKING = 0x01,
UPM_MENUANIMATION = 0x02,
UPM_COMBOBOXANIMATION = 0x04,
UPM_LISTBOXSMOOTHSCROLLING = 0x08,
UPM_GRADIENTCAPTIONS = 0x10,
UPM_KEYBOARDCUES = 0x20,
UPM_ACTIVEWNDTRKZORDER = 0x40,
UPM_HOTTRACKING = 0x80,
UPM_RESERVED = 0x100,
UPM_MENUFADE = 0x200,
UPM_SELECTIONFADE = 0x400,
UPM_TOOLTIPANIMATION = 0x800,
UPM_TOOLTIPFADE = 0x1000,
UPM_CURSORSHADOW = 0x2000,
UPM_CLICKLOCK = 0x8000,
UPM_FLATMENU = 0x20000,
UPM_DROPSHADOW = 0x40000,
// room for more
UPM_UIEFFECTS = 0x80000000,
UPM_DEFAULT = 0x80003E9E
} USERPREFMASKS;
typedef enum
{
wmCenter = 0,
wmTile,
wmStretch,
wmFit,
wmFill
} WALLPAPER_MODE;
typedef struct _SPIVALUES
{
/* Metrics */
NONCLIENTMETRICSW ncm;
MINIMIZEDMETRICS mm;
ICONMETRICSW im;
UINT uiFocusBorderWidth;
UINT uiFocusBorderHeight;
/* Accessability */
ACCESSTIMEOUT accesstimeout;
HIGHCONTRASTW highcontrast;
BOOL bScreenReader;
#if(WINVER >= 0x0600)
AUDIODESCRIPTION audiodescription;
BOOL bClientAreaAnimation;
BOOL bDisableOverlappedContent;
ULONG ulMsgDuration;
BOOL bSpeechRecognition;
#endif
/* Sound */
SOUNDSENTRYW soundsentry;
BOOL bShowSounds;
BOOL bBeep;
/* Mouse */
CURSORACCELERATION_INFO caiMouse;
MOUSEKEYS mousekeys;
BOOL bMouseClickLock;
BOOL bMouseCursorShadow;
DWORD dwMouseClickLockTime;
BOOL bMouseSonar;
BOOL bMouseVanish;
BOOL bMouseBtnSwap;
BOOL bSmoothScrolling;
INT iMouseSpeed;
INT iMouseHoverWidth;
INT iMouseHoverHeight;
INT iMouseHoverTime;
INT iDblClickWidth;
INT iDblClickHeight;
INT iDblClickTime;
INT iDragWidth;
INT iDragHeight;
INT iMouseTrails;
INT iWheelScrollLines;
#if (_WIN32_WINNT >= 0x0600)
UINT uiWheelScrollChars;
#endif
/* Keyboard */
FILTERKEYS filterkeys;
SERIALKEYS serialkeys;
STICKYKEYS stickykeys;
TOGGLEKEYS togglekeys;
DWORD dwKbdSpeed;
BOOL bKbdPref;
HKL hklDefInputLang;
INT iKbdDelay;
/* Screen saver */
INT iScrSaverTimeout;
BOOL bScrSaverActive;
BOOL bScrSaverRunning;
#if(WINVER >= 0x0600)
BOOL bScrSaverSecure;
#endif
/* Power */
INT iLowPwrTimeout;
INT iPwrOffTimeout;
BOOL bLowPwrActive;
BOOL bPwrOffActive;
/* UI Effects */
DWORD dwUserPrefMask;
BOOL bFontSmoothing;
UINT uiFontSmoothingType;
UINT uiFontSmoothingContrast;
UINT uiFontSmoothingOrientation;
BOOL bDragFullWindows;
BOOL bMenuDropAlign;
DWORD dwMenuShowDelay;
BOOL bBlockSendInputResets;
#if(_WIN32_WINNT >= 0x0600)
BOOL bClearType;
#endif
/* Text metrics */
TEXTMETRICW tmMenuFont;
TEXTMETRICW tmCaptionFont;
/* Wallpaper */
HANDLE hbmWallpaper;
ULONG cxWallpaper, cyWallpaper;
WALLPAPER_MODE WallpaperMode;
UNICODE_STRING ustrWallpaper;
WCHAR awcWallpaper[MAX_PATH + 1];
BOOL bHandHeld;
BOOL bFastTaskSwitch;
UINT uiGridGranularity;
ANIMATIONINFO animationinfo;
BOOL bSnapToDefBtn;
BOOL bShowImeUi;
DWORD dwForegroundLockTimeout;
DWORD dwActiveTrackingTimeout;
DWORD dwForegroundFlashCount;
DWORD dwCaretWidth;
// SPI_LANGDRIVER
// SPI_SETDESKPATTERN
// SPI_SETPENWINDOWS
// SPI_SETCURSORS
// SPI_SETICONS
// SPI_SETLANGTOGGLE
// SPI_GETWINDOWSEXTENSION
} SPIVALUES, *PSPIVALUES;
typedef union _SPIBUFFER
{
char ach[1];
WCHAR awcWallpaper[MAX_PATH+1];
FILTERKEYS fiterkeys;
TOGGLEKEYS togglekeys;
MOUSEKEYS mousekeys;
STICKYKEYS stickykeys;
ACCESSTIMEOUT accesstimeout;
SERIALKEYS serialkeys;
SOUNDSENTRYW soundsentry;
NONCLIENTMETRICSW ncmetrics;
MINIMIZEDMETRICS mmmetrics;
ICONMETRICSW iconmetrics;
HIGHCONTRASTW highcontrast;
ANIMATIONINFO animationinfo;
#if(WINVER >= 0x0600)
AUDIODESCRIPTION audiodescription;
#endif
} SPIBUFFER;
extern SPIVALUES gspv;
extern BOOL g_PaintDesktopVersion;
BOOL InitSysParams();
#define SPITESTPREF(x) (gspv.dwUserPrefMask & x ? 1 : 0)