branch update for HEAD-2003050101
[reactos.git] / subsys / win32k / ntuser / metric.c
1 /* $Id$
2  *
3  * COPYRIGHT:        See COPYING in the top level directory
4  * PROJECT:          ReactOS kernel
5  * PURPOSE:          Window classes
6  * FILE:             subsys/win32k/ntuser/class.c
7  * PROGRAMER:        Casper S. Hornstrup (chorns@users.sourceforge.net)
8  * REVISION HISTORY:
9  *       06-06-2001  CSH  Created
10  */
11
12 /* INCLUDES ******************************************************************/
13
14 #include <ddk/ntddk.h>
15 #include <win32k/win32k.h>
16 #include <win32k/userobj.h>
17 #include <include/class.h>
18 #include <include/error.h>
19 #include <include/winsta.h>
20 #include <include/msgqueue.h>
21
22 #define NDEBUG
23 #include <debug.h>
24
25 /* FUNCTIONS *****************************************************************/
26
27 /* FIXME:  Alot of thse values should NOT be hardcoded but they are */
28 ULONG STDCALL
29 NtUserGetSystemMetrics(ULONG Index)
30 {
31   switch (Index)
32     {
33     case SM_ARRANGE:
34       return(8);
35     case SM_CLEANBOOT:
36       return(0);
37     case SM_CMOUSEBUTTONS:
38       return(2);
39     case SM_CXBORDER:
40     case SM_CYBORDER:
41       return(1);
42     case SM_CXCURSOR:
43     case SM_CYCURSOR:
44       return(32);
45     case SM_CXDLGFRAME:
46     case SM_CYDLGFRAME:
47       return(3);
48     case SM_CXDOUBLECLK:
49     case SM_CYDOUBLECLK:
50       return(4);
51     case SM_CXDRAG:
52     case SM_CYDRAG:
53       return(2);
54     case SM_CXEDGE:
55     case SM_CYEDGE:
56       return(2);
57     case SM_CXFRAME:
58     case SM_CYFRAME:
59       return(4);
60     case SM_CXFULLSCREEN:
61       return(640);
62     case SM_CYFULLSCREEN:
63       return(480);
64     case SM_CXHSCROLL:
65     case SM_CYHSCROLL:
66       return(16);
67     case SM_CXHTHUMB:
68       return(16);
69     case SM_CXICON:
70     case SM_CYICON:
71       return(32);
72     case SM_CXICONSPACING:
73     case SM_CYICONSPACING:
74       return(75);
75     case SM_CXMAXIMIZED:
76       return(NtUserGetSystemMetrics(SM_CXSCREEN) + 8); /* This seems to be 8
77                                                           pixels greater than
78                                                           the screen width */
79     case SM_CYMAXIMIZED:
80       return(NtUserGetSystemMetrics(SM_CYSCREEN) - 20); /* This seems to be 20
81                                                            pixels less than 
82                                                            the screen height, 
83                                                            taskbar maybe? */
84     case SM_CXMAXTRACK:
85       return(NtUserGetSystemMetrics(SM_CYSCREEN) + 12);
86     case SM_CYMAXTRACK:
87       return(NtUserGetSystemMetrics(SM_CYSCREEN) + 12);
88     case SM_CXMENUCHECK:
89     case SM_CYMENUCHECK:
90       return(13);
91     case SM_CXMENUSIZE:
92     case SM_CYMENUSIZE:
93       return(18);
94     case SM_CXMIN:
95       return(112);
96     case SM_CYMIN:
97       return(27);
98     case SM_CXMINIMIZED:
99       return(160);
100     case SM_CYMINIMIZED:
101       return(24);
102     case SM_CXMINSPACING:
103       return(160);
104     case SM_CYMINSPACING:
105       return(24);
106     case SM_CXMINTRACK:
107       return(112);
108     case SM_CYMINTRACK:
109       return(27);
110     case SM_CXSCREEN:
111       return(640);
112     case SM_CYSCREEN:
113       return(480);
114     case SM_CXSIZE:
115     case SM_CYSIZE:
116       return(18);
117     case SM_CXSMICON:
118     case SM_CYSMICON:
119       return(16);
120     case SM_CXSMSIZE:
121       return(12);
122     case SM_CYSMSIZE:
123       return(15);
124     case SM_CXVSCROLL:
125     case SM_CYVSCROLL:
126       return(16);
127     case SM_CYCAPTION:
128       return(19);
129     case SM_CYKANJIWINDOW:
130       return 0;
131     case SM_CYMENU:
132       return(19);
133     case SM_CYSMCAPTION:
134       return(16);
135     case SM_CYVTHUMB:
136     case SM_DBCSENABLED:
137     case SM_DEBUG:
138     case SM_MENUDROPALIGNMENT: 
139     case SM_MIDEASTENABLED:
140       return(0);
141     case SM_MOUSEPRESENT:      
142       return(1);
143     case SM_NETWORK:           
144       return(3);
145     case SM_PENWINDOWS:        
146     case SM_SECURE:            
147     case SM_SHOWSOUNDS:        
148     case SM_SLOWMACHINE:       
149     case SM_SWAPBUTTON:        
150       return(0);
151     default:
152       return(0xFFFFFFFF);
153     }
154 }
155
156 /* EOF */