source: abuse/trunk/src/imlib/keys.cpp @ 4

Last change on this file since 4 was 4, checked in by Sam Hocevar, 18 years ago
  • debian patches
File size: 3.0 KB
Line 
1#include "keys.hpp"
2#include <string.h>
3#include <ctype.h>
4
5char *jk_key_names[]= {"Up Arrow","Down Arrow","Left Arrow","Right Arrow",
6                    "Left Ctrl","Right Ctrl","Left Alt","Right Alt",
7                    "Left Shift","Right Shift","Caps Lock","Num Lock",
8                    "Home","End","Del","F1","F2","F3","F4","F5","F6",
9                    "F7","F8","F9","F10","Insert","PageUp","PageDown","Command"};
10
11
12void key_name(int key, char *buffer)
13{
14        //static char sing[2];
15        if( key > 255 && key <= JK_MAX_KEY )
16                strcpy(buffer,jk_key_names[key-256]);
17        else if( key == JK_BACKSPACE )
18                strcpy(buffer,"Backspace");
19        else if( key == JK_TAB )
20                strcpy(buffer,"Tab");
21        else if( key == JK_ENTER )
22                strcpy(buffer,"Enter");
23        else if( key == JK_ESC )
24                strcpy(buffer,"Esc");
25        else if( key == JK_SPACE )
26                strcpy( buffer, "Space" );
27        else if( isprint(key) )
28        {
29                buffer[0] = key;
30                buffer[1] = 0;
31        }
32        else
33        {
34                buffer[0] = 0;
35        }
36}
37
38int key_value( char *buffer )
39{
40        if( strcasecmp( buffer, "Backspace" ) == 0 )
41                return JK_BACKSPACE;
42        if( strcasecmp( buffer, "Tab" ) == 0 )
43                return JK_TAB;
44        if( strcasecmp( buffer, "Enter" ) == 0 )
45                return JK_ENTER;
46        if( strcasecmp( buffer, "ESC" ) == 0 )
47                return JK_ESC;
48        if( strcasecmp( buffer, "Space" ) == 0 )
49                return JK_SPACE;
50        if( strcasecmp( buffer, "Up" ) == 0 )
51                return JK_UP;
52        if( strcasecmp( buffer, "Down" ) == 0 )
53                return JK_DOWN;
54        if( strcasecmp( buffer, "Left" ) == 0 )
55                return JK_LEFT;
56        if( strcasecmp( buffer, "Right" ) == 0 )
57                return JK_RIGHT;
58        if( strcasecmp( buffer, "CTRL_L" ) == 0 )
59                return JK_CTRL_L;
60        if( strcasecmp( buffer, "CTRL_R" ) == 0 )
61                return JK_CTRL_R;
62        if( strcasecmp( buffer, "ALT_L" ) == 0 )
63                return JK_ALT_L;
64        if( strcasecmp( buffer, "ALT_R" ) == 0 )
65                return JK_ALT_R;
66        if( strcasecmp( buffer, "SHIFT_L" ) == 0 )
67                return JK_SHIFT_L;
68        if( strcasecmp( buffer, "SHIFT_R" ) == 0 )
69                return JK_SHIFT_R;
70        if( strcasecmp( buffer, "Caps" ) == 0 )
71                return JK_CAPS;
72        if( strcasecmp( buffer, "Num_Lock" ) == 0 )
73                return JK_NUM_LOCK;
74        if( strcasecmp( buffer, "Home" ) == 0 )
75                return JK_HOME;
76        if( strcasecmp( buffer, "End" ) == 0 )
77                return JK_END;
78        if( strcasecmp( buffer, "Del" ) == 0 )
79                return JK_DEL;
80        if( strcasecmp( buffer, "F1" ) == 0 )
81                return JK_F1;
82        if( strcasecmp( buffer, "F2" ) == 0 )
83                return JK_F2;
84        if( strcasecmp( buffer, "F3" ) == 0 )
85                return JK_F3;
86        if( strcasecmp( buffer, "F4" ) == 0 )
87                return JK_F4;
88        if( strcasecmp( buffer, "F5" ) == 0 )
89                return JK_F5;
90        if( strcasecmp( buffer, "F6" ) == 0 )
91                return JK_F6;
92        if( strcasecmp( buffer, "F7" ) == 0 )
93                return JK_F7;
94        if( strcasecmp( buffer, "F8" ) == 0 )
95                return JK_F8;
96        if( strcasecmp( buffer, "F9" ) == 0 )
97                return JK_F9;
98        if( strcasecmp( buffer, "F10" ) == 0 )
99                return JK_F10;
100        if( strcasecmp( buffer, "Insert" ) == 0 )
101                return JK_INSERT;
102        if( strcasecmp( buffer, "PageUp" ) == 0 )
103                return JK_PAGEUP;
104        if( strcasecmp( buffer, "PageDown" ) == 0 )
105                return JK_PAGEDOWN;
106
107        // Assume they are asking for a normal key, so convert the first
108        // character to an integer and return that
109        return (int)buffer[0];
110}
111
112
Note: See TracBrowser for help on using the repository browser.