Release 940602
[wine] / windows / keyboard.c
1 /*
2  * Keyboard related functions
3  *
4  * Copyright 1993 Bob Amstadt
5  */
6
7 static char Copyright[] = "Copyright  Bob Amstadt, 1993";
8
9 #include "win.h"
10 #include "windows.h"
11
12 extern BOOL MouseButtonsStates[3];
13 extern BOOL AsyncMouseButtonsStates[3];
14
15 /**********************************************************************
16  *              GetKeyState     (USER.106)
17  */
18 int GetKeyState(int keycode)
19 {
20         switch(keycode) {
21                 case VK_LBUTTON:
22                     return MouseButtonsStates[0];
23                 case VK_MBUTTON:
24                     return MouseButtonsStates[1];
25                 case VK_RBUTTON:
26                     return MouseButtonsStates[2];
27                 default:
28                     return 0;
29                 }
30 }
31
32
33 /**********************************************************************
34  *
35  *            GetAsyncKeyState        (USER.249)
36  *
37  *      Determine if a key is or was pressed.  retval has high-order 
38  * byte set to 1 if currently pressed, low-order byte 1 if key has
39  * been pressed.
40  *
41  *      This uses the variable AsyncMouseButtonsStates (set in event.c)
42  * which have the mouse button number set to true if the mouse had been
43  * depressed since the last call to GetAsyncKeyState.
44  *
45  *      There should also be some keyboard stuff here... it isn't here
46  * yet.
47  */
48 int GetAsyncKeyState(int nKey)
49 {
50         short   retval; 
51
52         switch (nKey) {
53
54            case VK_LBUTTON:
55                 retval = AsyncMouseButtonsStates[0] | 
56                               (MouseButtonsStates[0] << 8);
57                 break;
58            case VK_MBUTTON:
59                 retval = AsyncMouseButtonsStates[1] |
60                               (MouseButtonsStates[1] << 8);
61                 break;
62            case VK_RBUTTON:
63                 retval = AsyncMouseButtonsStates[2] |
64                               MouseButtonsStates[2] << 8;
65                 break;
66            default:
67                 retval = 0;
68                 break;
69         }
70
71         bzero(AsyncMouseButtonsStates, 3);      /* all states to false */
72
73         return retval;
74 }
75