1 // This is core/vgui/vgui_key.h
2 #ifndef vgui_key_h_
3 #define vgui_key_h_
4 //:
5 // \file
6 // \brief Enumeration of possible key strokes.
7 
8 #include <iosfwd>
9 #ifdef _MSC_VER
10 #  include <vcl_msvc_warnings.h>
11 #endif
12 
13 //: Enumeration of possible key strokes.
14 enum vgui_key
15 {
16   vgui_KEY_NULL = 0,
17   vgui_TAB='\t',
18   vgui_NEWLINE='\n',
19   vgui_RETURN='\r',
20   vgui_ESC=27, /* */ vgui_ESCAPE=27,
21   vgui_space=' ', // 32
22   vgui_EXCLAM='!', // 33
23   vgui_HASH='#', // 35
24   vgui_DOLLAR='$', // 36
25   vgui_PERCENT='%', // 37
26   vgui_AMPERSAND='&', // 38
27   vgui_STAR='*', // 42
28   vgui_PLUS='+', // 43
29   vgui_COMMA=',', // 44
30   vgui_MINUS='-', // 45
31   vgui_POINT='.', // 46
32   vgui_SLASH='/', // 47
33   vgui_LESS='<', // 60
34   vgui_EQUALS='=', // 61
35   vgui_GREATER='>', // 62
36   vgui_QUESTION='?', // 63
37   vgui_LEFTBRACKET='[', // 91
38   vgui_RIGHTBRACKET=']', // 93
39   vgui_CHAR_a='a', // 97
40   vgui_CHAR_b='b', // 98
41   vgui_CHAR_c='c', // 99
42   vgui_CHAR_d='d', // 100
43   vgui_CHAR_e='e', // 101
44   vgui_CHAR_f='f', // 102
45   vgui_CHAR_g='g', // 103
46   vgui_CHAR_h='h', // 104
47   vgui_CHAR_i='i', // 105
48   vgui_CHAR_j='j', // 106
49   vgui_CHAR_k='k', // 107
50   vgui_CHAR_l='l', // 108
51   vgui_CHAR_m='m', // 109
52   vgui_CHAR_n='n', // 110
53   vgui_CHAR_o='o', // 111
54   vgui_CHAR_p='p', // 112
55   vgui_CHAR_q='q', // 113
56   vgui_CHAR_r='r', // 114
57   vgui_CHAR_s='s', // 115
58   vgui_CHAR_t='t', // 116
59   vgui_CHAR_u='u', // 117
60   vgui_CHAR_v='v', // 118
61   vgui_CHAR_w='w', // 119
62   vgui_CHAR_x='x', // 120
63   vgui_CHAR_y='y', // 121
64   vgui_CHAR_z='z', // 122
65   vgui_LEFTBRACE='{', // 123
66   vgui_RIGHTBRACE='}', // 125
67   vgui_KEY_XXX=0x100, // non-ascii encoded keys below :
68   vgui_F1, vgui_F2 , vgui_F3 , vgui_F4 , // function keys
69   vgui_F5, vgui_F6 , vgui_F7 , vgui_F8 ,
70   vgui_F9, vgui_F10, vgui_F11, vgui_F12,
71   vgui_CURSOR_LEFT, vgui_CURSOR_UP, vgui_CURSOR_RIGHT, vgui_CURSOR_DOWN,  // cursor movement
72   vgui_PAGE_UP, /* */ vgui_PGUP=vgui_PAGE_UP,
73   vgui_PAGE_DOWN, /* */ vgui_PGDN = vgui_PAGE_DOWN,
74   vgui_HOME, vgui_END,
75   vgui_DELETE, vgui_INSERT  // other things
76 };
77 
78 //: Given a letter character, this function returns the control character.
79 //
80 //  Use vgui_key_CTRL('a') or vgui_key_CTRL('A') to signify control+A.
81 //  Note, the vgui_key in a vgui_event is always a lower case letter (see
82 //  vgui_event.h), so don't compare event.key to a vgui_key_CTRL'ed letter.
83 //  You may compare a vgui_key_CTRL'ed to an event.ascii_key.
84 vgui_key vgui_key_CTRL(int character);
85 
86 std::ostream& operator<<(std::ostream& s, vgui_key k);
87 
88 #endif // vgui_key_h_
89