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