Sync with trunk revision r58045 to bring the corrections on configure.cmd and on...
[reactos.git] / win32ss / user / ntuser / sysparams.h
1 #pragma once
2
3 // Create one struct
4 // Make usable for different users (multiple structs!)
5
6 #define SPI_TABLE1_MIN 1
7 #define SPI_TABLE1_MAX 119
8 #define SPI_TABLE2_MIN 4096
9 #define SPI_TABLE2_MAX 4171
10 #define SPI_TABLE3_MIN 8192
11 #define SPI_TABLE3_MAX 8215
12
13 #define SPIF_PROTECT 0x80000
14
15 typedef enum _USERPREFMASKS
16 {
17 UPM_ACTIVEWINDOWTRACKING = 0x01,
18 UPM_MENUANIMATION = 0x02,
19 UPM_COMBOBOXANIMATION = 0x04,
20 UPM_LISTBOXSMOOTHSCROLLING = 0x08,
21 UPM_GRADIENTCAPTIONS = 0x10,
22 UPM_KEYBOARDCUES = 0x20,
23 UPM_ACTIVEWNDTRKZORDER = 0x40,
24 UPM_HOTTRACKING = 0x80,
25 UPM_RESERVED = 0x100,
26 UPM_MENUFADE = 0x200,
27 UPM_SELECTIONFADE = 0x400,
28 UPM_TOOLTIPANIMATION = 0x800,
29 UPM_TOOLTIPFADE = 0x1000,
30 UPM_CURSORSHADOW = 0x2000,
31 UPM_CLICKLOCK = 0x8000,
32 // room for more
33 UPM_UIEFFECTS = 0x80000000,
34 UPM_DEFAULT = 0x80003E9E
35 } USERPREFMASKS;
36
37 typedef enum
38 {
39 wmCenter = 0,
40 wmTile,
41 wmStretch
42 } WALLPAPER_MODE;
43
44 typedef struct _SPIVALUES
45 {
46 /* Metrics */
47 NONCLIENTMETRICSW ncm;
48 MINIMIZEDMETRICS mm;
49 ICONMETRICSW im;
50 UINT uiFocusBorderWidth;
51 UINT uiFocusBorderHeight;
52
53 /* Accessability */
54 ACCESSTIMEOUT accesstimeout;
55 HIGHCONTRAST highcontrast;
56 BOOL bScreenReader;
57 #if(WINVER >= 0x0600)
58 AUDIODESCRIPTION audiodescription;
59 BOOL bClientAreaAnimation;
60 BOOL bDisableOverlappedContent;
61 ULONG ulMsgDuration;
62 BOOL bSpeechRecognition;
63 #endif
64
65 /* Sound */
66 SOUNDSENTRY soundsentry;
67 BOOL bShowSounds;
68 BOOL bBeep;
69
70 /* Mouse */
71 CURSORACCELERATION_INFO caiMouse;
72 MOUSEKEYS mousekeys;
73 BOOL bMouseClickLock;
74 BOOL bMouseCursorShadow;
75 DWORD dwMouseClickLockTime;
76 BOOL bMouseSonar;
77 BOOL bMouseVanish;
78 BOOL bMouseBtnSwap;
79 BOOL bSmoothScrolling;
80 INT iMouseSpeed;
81 INT iMouseHoverWidth;
82 INT iMouseHoverHeight;
83 INT iMouseHoverTime;
84 INT iDblClickWidth;
85 INT iDblClickHeight;
86 INT iDblClickTime;
87 INT iDragWidth;
88 INT iDragHeight;
89 INT iMouseTrails;
90 INT iWheelScrollLines;
91 #if (_WIN32_WINNT >= 0x0600)
92 UINT uiWheelScrollChars;
93 #endif
94
95 /* Keyboard */
96 FILTERKEYS filterkeys;
97 SERIALKEYS serialkeys;
98 STICKYKEYS stickykeys;
99 TOGGLEKEYS togglekeys;
100 DWORD dwKbdSpeed;
101 BOOL bKbdPref;
102 HKL hklDefInputLang;
103 INT iKbdDelay;
104
105 /* Screen saver */
106 INT iScrSaverTimeout;
107 BOOL bScrSaverActive;
108 BOOL bScrSaverRunning;
109 #if(WINVER >= 0x0600)
110 BOOL bScrSaverSecure;
111 #endif
112
113 /* Power */
114 INT iLowPwrTimeout;
115 INT iPwrOffTimeout;
116 BOOL bLowPwrActive;
117 BOOL bPwrOffActive;
118
119 /* UI Effects */
120 DWORD dwUserPrefMask;
121 BOOL bFontSmoothing;
122 UINT uiFontSmoothingType;
123 UINT uiFontSmoothingContrast;
124 UINT uiFontSmoothingOrientation;
125 BOOL bDragFullWindows;
126 BOOL bMenuDropAlign;
127 BOOL bFlatMenu;
128 DWORD dwMenuShowDelay;
129 BOOL bDropShadow;
130 BOOL bBlockSendInputResets;
131 #if(_WIN32_WINNT >= 0x0600)
132 BOOL bClearType;
133 #endif
134
135 /* Text metrics */
136 TEXTMETRICW tmMenuFont;
137 TEXTMETRICW tmCaptionFont;
138
139 /* Wallpaper */
140 HANDLE hbmWallpaper;
141 ULONG cxWallpaper, cyWallpaper;
142 WALLPAPER_MODE WallpaperMode;
143 UNICODE_STRING ustrWallpaper;
144 WCHAR awcWallpaper[MAX_PATH + 1];
145
146 BOOL bHandHeld;
147 BOOL bFastTaskSwitch;
148 UINT uiGridGranularity;
149
150 ANIMATIONINFO animationinfo;
151 BOOL bSnapToDefBtn;
152 BOOL bShowImeUi;
153 DWORD dwForegroundLockTimeout;
154 DWORD dwActiveTrackingTimeout;
155 DWORD dwForegroundFlashCount;
156 DWORD dwCaretWidth;
157
158 // SPI_LANGDRIVER
159 // SPI_SETDESKPATTERN
160 // SPI_SETPENWINDOWS
161 // SPI_SETCURSORS
162 // SPI_SETICONS
163 // SPI_SETLANGTOGGLE
164 // SPI_GETWINDOWSEXTENSION
165
166 } SPIVALUES, *PSPIVALUES;
167
168 typedef union _SPIBUFFER
169 {
170 char ach[1];
171 WCHAR awcWallpaper[MAX_PATH+1];
172 FILTERKEYS fiterkeys;
173 TOGGLEKEYS togglekeys;
174 MOUSEKEYS mousekeys;
175 STICKYKEYS stickykeys;
176 ACCESSTIMEOUT accesstimeout;
177 SERIALKEYS serialkeys;
178 SOUNDSENTRY soundsentry;
179 NONCLIENTMETRICSW ncmetrics;
180 MINIMIZEDMETRICS mmmetrics;
181 ICONMETRICS iconmetrics;
182 HIGHCONTRAST highcontrast;
183 ANIMATIONINFO animationinfo;
184 #if(WINVER >= 0x0600)
185 AUDIODESCRIPTION audiodescription;
186 #endif
187 } SPIBUFFER;
188
189 extern SPIVALUES gspv;
190 extern BOOL g_PaintDesktopVersion;
191
192 BOOL InitSysParams();
193 #define SPITESTPREF(x) (gspv.dwUserPrefMask & x ? 1 : 0)