~ubuntu-branches/ubuntu/utopic/sikuli/utopic

« back to all changes in this revision

Viewing changes to sikuli-script/src/main/java/org/sikuli/script/Key.java

  • Committer: Bazaar Package Importer
  • Author(s): Gilles Filippini
  • Date: 2011-10-04 23:32:13 UTC
  • mfrom: (4.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20111004233213-36fm78hx0z53tkuw
Tags: 1.0~x~rc3-dfsg1-2
* New patch fix-cmake-sikuli-ide.patch:
  + Fix random FTBFS due to missing inter target dependency

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright 2010-2011, Sikuli.org
 
3
 * Released under the MIT License.
 
4
 *
 
5
 */
 
6
package org.sikuli.script;
 
7
 
 
8
import java.awt.event.KeyEvent;
 
9
 
 
10
public class Key {
 
11
   public static final String SPACE       = " ";
 
12
   public static final String ENTER       = "\n";
 
13
   public static final String BACKSPACE   = "\b";
 
14
   public static final String TAB         = "\t";
 
15
   public static final String ESC         = "\u001b";
 
16
   public static final char C_ESC         = '\u001b';
 
17
   public static final String UP          = "\ue000";
 
18
   public static final char C_UP          = '\ue000';
 
19
   public static final String RIGHT       = "\ue001";
 
20
   public static final char C_RIGHT       = '\ue001';
 
21
   public static final String DOWN        = "\ue002";
 
22
   public static final char C_DOWN        = '\ue002';
 
23
   public static final String LEFT        = "\ue003";
 
24
   public static final char C_LEFT        = '\ue003';
 
25
   public static final String PAGE_UP     = "\ue004";
 
26
   public static final char C_PAGE_UP     = '\ue004';
 
27
   public static final String PAGE_DOWN   = "\ue005";
 
28
   public static final char C_PAGE_DOWN   = '\ue005';
 
29
   public static final String DELETE      = "\ue006";
 
30
   public static final char C_DELETE      = '\ue006';
 
31
   public static final String END         = "\ue007";
 
32
   public static final char C_END         = '\ue007';
 
33
   public static final String HOME        = "\ue008";
 
34
   public static final char C_HOME        = '\ue008';
 
35
   public static final String INSERT      = "\ue009";
 
36
   public static final char C_INSERT      = '\ue009';
 
37
   public static final String F1          = "\ue011";
 
38
   public static final char C_F1          = '\ue011';
 
39
   public static final String F2          = "\ue012";
 
40
   public static final char C_F2          = '\ue012';
 
41
   public static final String F3          = "\ue013";
 
42
   public static final char C_F3          = '\ue013';
 
43
   public static final String F4          = "\ue014";
 
44
   public static final char C_F4          = '\ue014';
 
45
   public static final String F5          = "\ue015";
 
46
   public static final char C_F5          = '\ue015';
 
47
   public static final String F6          = "\ue016";
 
48
   public static final char C_F6          = '\ue016';
 
49
   public static final String F7          = "\ue017";
 
50
   public static final char C_F7          = '\ue017';
 
51
   public static final String F8          = "\ue018";
 
52
   public static final char C_F8          = '\ue018';
 
53
   public static final String F9          = "\ue019";
 
54
   public static final char C_F9          = '\ue019';
 
55
   public static final String F10         = "\ue01A";
 
56
   public static final char C_F10         = '\ue01A';
 
57
   public static final String F11         = "\ue01B";
 
58
   public static final char C_F11         = '\ue01B';
 
59
   public static final String F12         = "\ue01C";
 
60
   public static final char C_F12         = '\ue01C';
 
61
   public static final String F13         = "\ue01D";
 
62
   public static final char C_F13         = '\ue01D';
 
63
   public static final String F14         = "\ue01E";
 
64
   public static final char C_F14         = '\ue01E';
 
65
   public static final String F15         = "\ue01F";
 
66
   public static final char C_F15         = '\ue01F';
 
67
   public static final String SHIFT       = "\ue020";
 
68
   public static final char C_SHIFT       = '\ue020';
 
69
   public static final String CTRL        = "\ue021";
 
70
   public static final char C_CTRL        = '\ue021';
 
71
   public static final String ALT         = "\ue022";
 
72
   public static final char C_ALT         = '\ue022';
 
73
   public static final String META        = "\ue023";
 
74
   public static final char C_META        = '\ue023';
 
75
   public static final String CMD         = "\ue023";
 
76
   public static final char C_CMD         = '\ue023';
 
77
   public static final String WIN         = "\ue023";
 
78
   public static final char C_WIN         = '\ue023';
 
79
   public static final String PRINTSCREEN = "\ue024";
 
80
   public static final char C_PRINTSCREEN = '\ue024';
 
81
   public static final String SCROLL_LOCK = "\ue025";
 
82
   public static final char C_SCROLL_LOCK = '\ue025';
 
83
   public static final String PAUSE       = "\ue026";
 
84
   public static final char C_PAUSE       = '\ue026';
 
85
   public static final String CAPS_LOCK   = "\ue027";
 
86
   public static final char C_CAPS_LOCK   = '\ue027';
 
87
   public static final String NUM0        = "\ue030";
 
88
   public static final char C_NUM0        = '\ue030';
 
89
   public static final String NUM1        = "\ue031";
 
90
   public static final char C_NUM1        = '\ue031';
 
91
   public static final String NUM2        = "\ue032";
 
92
   public static final char C_NUM2        = '\ue032';
 
93
   public static final String NUM3        = "\ue033";
 
94
   public static final char C_NUM3        = '\ue033';
 
95
   public static final String NUM4        = "\ue034";
 
96
   public static final char C_NUM4        = '\ue034';
 
97
   public static final String NUM5        = "\ue035";
 
98
   public static final char C_NUM5        = '\ue035';
 
99
   public static final String NUM6        = "\ue036";
 
100
   public static final char C_NUM6        = '\ue036';
 
101
   public static final String NUM7        = "\ue037";
 
102
   public static final char C_NUM7        = '\ue037';
 
103
   public static final String NUM8        = "\ue038";
 
104
   public static final char C_NUM8        = '\ue038';
 
105
   public static final String NUM9        = "\ue039";
 
106
   public static final char C_NUM9        = '\ue039';
 
107
   public static final String SEPARATOR   = "\ue03A";
 
108
   public static final char C_SEPARATOR   = '\ue03A';
 
109
   public static final String NUM_LOCK    = "\ue03B";
 
110
   public static final char C_NUM_LOCK    = '\ue03B';
 
111
   public static final String ADD         = "\ue03C";
 
112
   public static final char C_ADD         = '\ue03C';
 
113
   public static final String MINUS       = "\ue03D";
 
114
   public static final char C_MINUS       = '\ue03D';
 
115
   public static final String MULTIPLY    = "\ue03E";
 
116
   public static final char C_MULTIPLY    = '\ue03E';
 
117
   public static final String DIVIDE      = "\ue03F";
 
118
   public static final char C_DIVIDE      = '\ue03F';
 
119
 
 
120
   /**
 
121
    *  Convert Sikuli Key to Java virtual key code
 
122
    */ 
 
123
   public static int[] toJavaKeyCode(String key){
 
124
      if(key.length()>0)
 
125
         return toJavaKeyCode(key.charAt(0));
 
126
      return null;
 
127
   }
 
128
 
 
129
   /**
 
130
    *  Convert Sikuli Key to Java virtual key code
 
131
    */ 
 
132
   public static int[] toJavaKeyCode(char key){
 
133
      switch (key) {
 
134
         case 'a': return new int[] {KeyEvent.VK_A};
 
135
         case 'b': return new int[] {KeyEvent.VK_B};
 
136
         case 'c': return new int[] {KeyEvent.VK_C};
 
137
         case 'd': return new int[] {KeyEvent.VK_D};
 
138
         case 'e': return new int[] {KeyEvent.VK_E};
 
139
         case 'f': return new int[] {KeyEvent.VK_F};
 
140
         case 'g': return new int[] {KeyEvent.VK_G};
 
141
         case 'h': return new int[] {KeyEvent.VK_H};
 
142
         case 'i': return new int[] {KeyEvent.VK_I};
 
143
         case 'j': return new int[] {KeyEvent.VK_J};
 
144
         case 'k': return new int[] {KeyEvent.VK_K};
 
145
         case 'l': return new int[] {KeyEvent.VK_L};
 
146
         case 'm': return new int[] {KeyEvent.VK_M};
 
147
         case 'n': return new int[] {KeyEvent.VK_N};
 
148
         case 'o': return new int[] {KeyEvent.VK_O};
 
149
         case 'p': return new int[] {KeyEvent.VK_P};
 
150
         case 'q': return new int[] {KeyEvent.VK_Q};
 
151
         case 'r': return new int[] {KeyEvent.VK_R};
 
152
         case 's': return new int[] {KeyEvent.VK_S};
 
153
         case 't': return new int[] {KeyEvent.VK_T};
 
154
         case 'u': return new int[] {KeyEvent.VK_U};
 
155
         case 'v': return new int[] {KeyEvent.VK_V};
 
156
         case 'w': return new int[] {KeyEvent.VK_W};
 
157
         case 'x': return new int[] {KeyEvent.VK_X};
 
158
         case 'y': return new int[] {KeyEvent.VK_Y};
 
159
         case 'z': return new int[] {KeyEvent.VK_Z};
 
160
         case 'A': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_A};
 
161
         case 'B': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_B};
 
162
         case 'C': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_C};
 
163
         case 'D': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_D};
 
164
         case 'E': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_E};
 
165
         case 'F': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_F};
 
166
         case 'G': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_G};
 
167
         case 'H': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_H};
 
168
         case 'I': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_I};
 
169
         case 'J': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_J};
 
170
         case 'K': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_K};
 
171
         case 'L': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_L};
 
172
         case 'M': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_M};
 
173
         case 'N': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_N};
 
174
         case 'O': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_O};
 
175
         case 'P': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_P};
 
176
         case 'Q': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_Q};
 
177
         case 'R': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_R};
 
178
         case 'S': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_S};
 
179
         case 'T': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_T};
 
180
         case 'U': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_U};
 
181
         case 'V': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_V};
 
182
         case 'W': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_W};
 
183
         case 'X': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_X};
 
184
         case 'Y': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_Y};
 
185
         case 'Z': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_Z};
 
186
         case '`': return new int[] {KeyEvent.VK_BACK_QUOTE};
 
187
         case '0': return new int[] {KeyEvent.VK_0};
 
188
         case '1': return new int[] {KeyEvent.VK_1};
 
189
         case '2': return new int[] {KeyEvent.VK_2};
 
190
         case '3': return new int[] {KeyEvent.VK_3};
 
191
         case '4': return new int[] {KeyEvent.VK_4};
 
192
         case '5': return new int[] {KeyEvent.VK_5};
 
193
         case '6': return new int[] {KeyEvent.VK_6};
 
194
         case '7': return new int[] {KeyEvent.VK_7};
 
195
         case '8': return new int[] {KeyEvent.VK_8};
 
196
         case '9': return new int[] {KeyEvent.VK_9};
 
197
         case '-': return new int[] {KeyEvent.VK_MINUS};
 
198
         case '=': return new int[] {KeyEvent.VK_EQUALS};
 
199
         case '~': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_BACK_QUOTE};
 
200
         case '!': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_1};
 
201
         case '@': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_2};
 
202
         case '#': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_3};
 
203
         case '$': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_4};
 
204
         case '%': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_5};
 
205
         case '^': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_6};
 
206
         case '&': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_7};
 
207
         case '*': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_8};
 
208
         case '(': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_9};
 
209
         case ')': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_0};
 
210
         case '_': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_MINUS};
 
211
         case '+': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_EQUALS};
 
212
         case '\b':return new int[] {KeyEvent.VK_BACK_SPACE};
 
213
         case '\t':return new int[] {KeyEvent.VK_TAB};
 
214
         case '\r':return new int[] {KeyEvent.VK_ENTER};
 
215
         case '\n':return new int[] {KeyEvent.VK_ENTER};
 
216
         case '[': return new int[] {KeyEvent.VK_OPEN_BRACKET};
 
217
         case ']': return new int[] {KeyEvent.VK_CLOSE_BRACKET};
 
218
         case '\\':return new int[] {KeyEvent.VK_BACK_SLASH};
 
219
         case '{': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_OPEN_BRACKET};
 
220
         case '}': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_CLOSE_BRACKET};
 
221
         case '|': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_BACK_SLASH};
 
222
         case ';': return new int[] {KeyEvent.VK_SEMICOLON};
 
223
         case ':': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_SEMICOLON};
 
224
         case '\'':return new int[] {KeyEvent.VK_QUOTE};
 
225
         case '"': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_QUOTE};
 
226
         case ',': return new int[] {KeyEvent.VK_COMMA};
 
227
         case '<': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_COMMA};
 
228
         case '.': return new int[] {KeyEvent.VK_PERIOD};
 
229
         case '>': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_PERIOD};
 
230
         case '/': return new int[] {KeyEvent.VK_SLASH};
 
231
         case '?': return new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_SLASH};
 
232
         case ' ': return new int[] {KeyEvent.VK_SPACE};
 
233
         case Key.C_ESC        : return new int[] {KeyEvent.VK_ESCAPE};
 
234
         case Key.C_UP         : return new int[] {KeyEvent.VK_UP};
 
235
         case Key.C_RIGHT      : return new int[] {KeyEvent.VK_RIGHT};
 
236
         case Key.C_DOWN       : return new int[] {KeyEvent.VK_DOWN};
 
237
         case Key.C_LEFT       : return new int[] {KeyEvent.VK_LEFT};
 
238
         case Key.C_PAGE_UP    : return new int[] {KeyEvent.VK_PAGE_UP};
 
239
         case Key.C_PAGE_DOWN  : return new int[] {KeyEvent.VK_PAGE_DOWN};
 
240
         case Key.C_DELETE     : return new int[] {KeyEvent.VK_DELETE};
 
241
         case Key.C_END        : return new int[] {KeyEvent.VK_END};
 
242
         case Key.C_HOME       : return new int[] {KeyEvent.VK_HOME};
 
243
         case Key.C_INSERT     : return new int[] {KeyEvent.VK_INSERT};
 
244
         case Key.C_F1         : return new int[] {KeyEvent.VK_F1};
 
245
         case Key.C_F2         : return new int[] {KeyEvent.VK_F2};
 
246
         case Key.C_F3         : return new int[] {KeyEvent.VK_F3};
 
247
         case Key.C_F4         : return new int[] {KeyEvent.VK_F4};
 
248
         case Key.C_F5         : return new int[] {KeyEvent.VK_F5};
 
249
         case Key.C_F6         : return new int[] {KeyEvent.VK_F6};
 
250
         case Key.C_F7         : return new int[] {KeyEvent.VK_F7};
 
251
         case Key.C_F8         : return new int[] {KeyEvent.VK_F8};
 
252
         case Key.C_F9         : return new int[] {KeyEvent.VK_F9};
 
253
         case Key.C_F10        : return new int[] {KeyEvent.VK_F10};
 
254
         case Key.C_F11        : return new int[] {KeyEvent.VK_F11};
 
255
         case Key.C_F12        : return new int[] {KeyEvent.VK_F12};
 
256
         case Key.C_F13        : return new int[] {KeyEvent.VK_F13};
 
257
         case Key.C_F14        : return new int[] {KeyEvent.VK_F14};
 
258
         case Key.C_F15        : return new int[] {KeyEvent.VK_F15};
 
259
         case Key.C_SHIFT      : return new int[] {KeyEvent.VK_SHIFT};
 
260
         case Key.C_CTRL       : return new int[] {KeyEvent.VK_CONTROL};
 
261
         case Key.C_ALT        : return new int[] {KeyEvent.VK_ALT};
 
262
         case Key.C_META       : return new int[] {KeyEvent.VK_META};
 
263
         case Key.C_PRINTSCREEN: return new int[] {KeyEvent.VK_PRINTSCREEN};
 
264
         case Key.C_SCROLL_LOCK: return new int[] {KeyEvent.VK_SCROLL_LOCK};
 
265
         case Key.C_PAUSE      : return new int[] {KeyEvent.VK_PAUSE};
 
266
         case Key.C_CAPS_LOCK  : return new int[] {KeyEvent.VK_CAPS_LOCK};
 
267
         case Key.C_NUM0       : return new int[] {KeyEvent.VK_NUMPAD0};
 
268
         case Key.C_NUM1       : return new int[] {KeyEvent.VK_NUMPAD1};
 
269
         case Key.C_NUM2       : return new int[] {KeyEvent.VK_NUMPAD2};
 
270
         case Key.C_NUM3       : return new int[] {KeyEvent.VK_NUMPAD3};
 
271
         case Key.C_NUM4       : return new int[] {KeyEvent.VK_NUMPAD4};
 
272
         case Key.C_NUM5       : return new int[] {KeyEvent.VK_NUMPAD5};
 
273
         case Key.C_NUM6       : return new int[] {KeyEvent.VK_NUMPAD6};
 
274
         case Key.C_NUM7       : return new int[] {KeyEvent.VK_NUMPAD7};
 
275
         case Key.C_NUM8       : return new int[] {KeyEvent.VK_NUMPAD8};
 
276
         case Key.C_NUM9       : return new int[] {KeyEvent.VK_NUMPAD9};
 
277
         case Key.C_SEPARATOR  : return new int[] {KeyEvent.VK_SEPARATOR};
 
278
         case Key.C_NUM_LOCK   : return new int[] {KeyEvent.VK_NUM_LOCK};
 
279
         case Key.C_ADD        : return new int[] {KeyEvent.VK_ADD};
 
280
         case Key.C_MINUS      : return new int[] {KeyEvent.VK_MINUS};
 
281
         case Key.C_MULTIPLY   : return new int[] {KeyEvent.VK_MULTIPLY};
 
282
         case Key.C_DIVIDE     : return new int[] {KeyEvent.VK_DIVIDE};
 
283
         default:
 
284
            throw new IllegalArgumentException("Cannot convert character " + key);
 
285
      }
 
286
   }
 
287
}