OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [classpath/] [native/] [jni/] [qt-peer/] [keybindings.cpp] - Blame information for rev 774

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 774 jeremybenn
/* keybindings.cpp --
2
   Copyright (C)  2005  Free Software Foundation, Inc.
3
 
4
This file is part of GNU Classpath.
5
 
6
GNU Classpath is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2, or (at your option)
9
any later version.
10
 
11
GNU Classpath is distributed in the hope that it will be useful, but
12
WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with GNU Classpath; see the file COPYING.  If not, write to the
18
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
02110-1301 USA.
20
 
21
Linking this library statically or dynamically with other modules is
22
making a combined work based on this library.  Thus, the terms and
23
conditions of the GNU General Public License cover the whole
24
combination.
25
 
26
As a special exception, the copyright holders of this library give you
27
permission to link this library with independent modules to produce an
28
executable, regardless of the license terms of these independent
29
modules, and to copy and distribute the resulting executable under
30
terms of your choice, provided that you also meet, for each linked
31
independent module, the terms and conditions of the license of that
32
module.  An independent module is a module which is not derived from
33
or based on this library.  If you modify this library, you may extend
34
this exception to your version of the library, but you are not
35
obligated to do so.  If you do not wish to do so, delete this
36
exception statement from your version. */
37
 
38
#include "keybindings.h"
39
 
40
/* InputEvent key modifiers */
41
#define SHIFT_MASK 1
42
#define CTRL_MASK 2
43
#define META_MASK 4
44
#define ALT_MASK 8
45
#define ALT_GRAPH_MASK 0x20
46
#define BUTTON1_MASK 0x10
47
#define BUTTON2_MASK 8
48
#define BUTTON3_MASK 4
49
 
50
#define SHIFT_DOWN_MASK 0x0040
51
#define CTRL_DOWN_MASK 0x0080
52
#define META_DOWN_MASK 0x0100
53
#define ALT_DOWN_MASK 0x0200
54
#define BUTTON1_DOWN_MASK  0x0400
55
#define BUTTON2_DOWN_MASK  0x0800
56
#define BUTTON3_DOWN_MASK  0x1000
57
#define ALT_GRAPH_DOWN_MASK  0x2000
58
 
59
/* Virtual Keys */
60
/* This list should be kept in the same order as the VK_ field
61
   declarations in KeyEvent.java. */
62
#define VK_ENTER '\n'
63
#define VK_BACK_SPACE '\b'
64
#define VK_TAB '\t'
65
#define VK_CANCEL 3
66
#define VK_CLEAR 12
67
#define VK_SHIFT 16
68
#define VK_CONTROL 17
69
#define VK_ALT 18
70
#define VK_PAUSE 19
71
#define VK_CAPS_LOCK 20
72
#define VK_ESCAPE 27
73
#define VK_SPACE ' '
74
#define VK_PAGE_UP 33
75
#define VK_PAGE_DOWN 34
76
#define VK_END 35
77
#define VK_HOME 36
78
#define VK_LEFT 37
79
#define VK_UP 38
80
#define VK_RIGHT 39
81
#define VK_DOWN 40
82
#define VK_COMMA ','
83
#define VK_MINUS '-'
84
#define VK_PERIOD '.'
85
#define VK_SLASH '/'
86
#define VK_0 '0'
87
#define VK_1 '1'
88
#define VK_2 '2'
89
#define VK_3 '3'
90
#define VK_4 '4'
91
#define VK_5 '5'
92
#define VK_6 '6'
93
#define VK_7 '7'
94
#define VK_8 '8'
95
#define VK_9 '9'
96
#define VK_SEMICOLON ';'
97
#define VK_EQUALS '='
98
#define VK_A 'A'
99
#define VK_B 'B'
100
#define VK_C 'C'
101
#define VK_D 'D'
102
#define VK_E 'E'
103
#define VK_F 'F'
104
#define VK_G 'G'
105
#define VK_H 'H'
106
#define VK_I 'I'
107
#define VK_J 'J'
108
#define VK_K 'K'
109
#define VK_L 'L'
110
#define VK_M 'M'
111
#define VK_N 'N'
112
#define VK_O 'O'
113
#define VK_P 'P'
114
#define VK_Q 'Q'
115
#define VK_R 'R'
116
#define VK_S 'S'
117
#define VK_T 'T'
118
#define VK_U 'U'
119
#define VK_V 'V'
120
#define VK_W 'W'
121
#define VK_X 'X'
122
#define VK_Y 'Y'
123
#define VK_Z 'Z'
124
#define VK_OPEN_BRACKET '['
125
#define VK_BACK_SLASH '\\'
126
#define VK_CLOSE_BRACKET ']'
127
#define VK_NUMPAD0 96
128
#define VK_NUMPAD1 97
129
#define VK_NUMPAD2 98
130
#define VK_NUMPAD3 99
131
#define VK_NUMPAD4 100
132
#define VK_NUMPAD5 101
133
#define VK_NUMPAD6 102
134
#define VK_NUMPAD7 103
135
#define VK_NUMPAD8 104
136
#define VK_NUMPAD9 105
137
#define VK_MULTIPLY 106
138
#define VK_ADD 107
139
#define VK_SEPARATER 108
140
#define VK_SEPARATOR 108
141
#define VK_SUBTRACT 109
142
#define VK_DECIMAL 110
143
#define VK_DIVIDE 111
144
#define VK_DELETE 127
145
#define VK_NUM_LOCK 144
146
#define VK_SCROLL_LOCK 145
147
#define VK_F1 112
148
#define VK_F2 113
149
#define VK_F3 114
150
#define VK_F4 115
151
#define VK_F5 116
152
#define VK_F6 117
153
#define VK_F7 118
154
#define VK_F8 119
155
#define VK_F9 120
156
#define VK_F10 121
157
#define VK_F11 122
158
#define VK_F12 123
159
#define VK_F13 61440
160
#define VK_F14 61441
161
#define VK_F15 61442
162
#define VK_F16 61443
163
#define VK_F17 61444
164
#define VK_F18 61445
165
#define VK_F19 61446
166
#define VK_F20 61447
167
#define VK_F21 61448
168
#define VK_F22 61449
169
#define VK_F23 61450
170
#define VK_F24 61451
171
#define VK_PRINTSCREEN 154
172
#define VK_INSERT 155
173
#define VK_HELP 156
174
#define VK_META 157
175
#define VK_BACK_QUOTE 192
176
#define VK_QUOTE 222
177
#define VK_KP_UP 224
178
#define VK_KP_DOWN 225
179
#define VK_KP_LEFT 226
180
#define VK_KP_RIGHT 227
181
#define VK_DEAD_GRAVE 128
182
#define VK_DEAD_ACUTE 129
183
#define VK_DEAD_CIRCUMFLEX 130
184
#define VK_DEAD_TILDE 131
185
#define VK_DEAD_MACRON 132
186
#define VK_DEAD_BREVE 133
187
#define VK_DEAD_ABOVEDOT 134
188
#define VK_DEAD_DIAERESIS 135
189
#define VK_DEAD_ABOVERING 136
190
#define VK_DEAD_DOUBLEACUTE 137
191
#define VK_DEAD_CARON 138
192
#define VK_DEAD_CEDILLA 139
193
#define VK_DEAD_OGONEK 140
194
#define VK_DEAD_IOTA 141
195
#define VK_DEAD_VOICED_SOUND 142
196
#define VK_DEAD_SEMIVOICED_SOUND 143
197
#define VK_AMPERSAND 150
198
#define VK_ASTERISK 151
199
#define VK_QUOTEDBL 152
200
#define VK_LESS 153
201
#define VK_GREATER 160
202
#define VK_BRACELEFT 161
203
#define VK_BRACERIGHT 162
204
#define VK_AT 512
205
#define VK_COLON 513
206
#define VK_CIRCUMFLEX 514
207
#define VK_DOLLAR 515
208
#define VK_EURO_SIGN 516
209
#define VK_EXCLAMATION_MARK 517
210
#define VK_INVERTED_EXCLAMATION_MARK 518
211
#define VK_LEFT_PARENTHESIS 519
212
#define VK_NUMBER_SIGN 520
213
#define VK_PLUS 521
214
#define VK_RIGHT_PARENTHESIS 522
215
#define VK_UNDERSCORE 523
216
#define VK_FINAL 24
217
#define VK_CONVERT 28
218
#define VK_NONCONVERT 29
219
#define VK_ACCEPT 30
220
#define VK_MODECHANGE 31
221
#define VK_KANA 21
222
#define VK_KANJI 25
223
#define VK_ALPHANUMERIC 240
224
#define VK_KATAKANA 241
225
#define VK_HIRAGANA 242
226
#define VK_FULL_WIDTH 243
227
#define VK_HALF_WIDTH 244
228
#define VK_ROMAN_CHARACTERS 245
229
#define VK_ALL_CANDIDATES 256
230
#define VK_PREVIOUS_CANDIDATE 257
231
#define VK_CODE_INPUT 258
232
#define VK_JAPANESE_KATAKANA 259
233
#define VK_JAPANESE_HIRAGANA 260
234
#define VK_JAPANESE_ROMAN 261
235
#define VK_KANA_LOCK 262
236
#define VK_INPUT_METHOD_ON_OFF 263
237
#define VK_CUT 65489
238
#define VK_COPY 65485
239
#define VK_PASTE 65487
240
#define VK_UNDO 65483
241
#define VK_AGAIN 65481
242
#define VK_FIND 65488
243
#define VK_PROPS 65482
244
#define VK_STOP 65480
245
#define VK_COMPOSE 65312
246
#define VK_ALT_GRAPH 65406
247
#define VK_UNDEFINED 0
248
 
249
 
250
int mapKeyCode(QKeyEvent *key)
251
{
252
  switch(key->key())
253
    {
254
    case Qt::Key_Escape:
255
      return VK_ESCAPE;
256
    case Qt::Key_Tab:
257
      return VK_TAB;
258
    case Qt::Key_Backspace:
259
      return VK_BACK_SPACE;
260
    case Qt::Key_Return:
261
    case Qt::Key_Enter:
262
      return VK_ENTER;
263
    case Qt::Key_Insert:
264
      return VK_INSERT;
265
    case Qt::Key_Delete:
266
      return VK_DELETE;
267
    case Qt::Key_Pause:
268
      return VK_PAUSE;
269
    case Qt::Key_Print:
270
    case Qt::Key_SysReq:
271
      return VK_PRINTSCREEN;
272
    case Qt::Key_Home:
273
      return VK_HOME;
274
    case Qt::Key_End:
275
      return VK_END;
276
    case Qt::Key_Left:
277
      return VK_LEFT;
278
    case Qt::Key_Up:
279
      return VK_UP;
280
    case Qt::Key_Right:
281
      return VK_RIGHT;
282
    case Qt::Key_Down:
283
      return VK_DOWN;
284
    case Qt::Key_PageUp:
285
      return VK_PAGE_UP;
286
    case Qt::Key_PageDown:
287
      return VK_PAGE_DOWN;
288
    case Qt::Key_Shift:
289
      return VK_SHIFT;
290
    case Qt::Key_Control:
291
      return VK_CONTROL;
292
    case Qt::Key_Meta:
293
      return VK_META;
294
    case Qt::Key_Alt:
295
      return VK_ALT;
296
    case Qt::Key_CapsLock:
297
      return VK_CAPS_LOCK;
298
    case Qt::Key_NumLock:
299
      return VK_NUM_LOCK;
300
    case Qt::Key_ScrollLock:
301
      return VK_SCROLL_LOCK;
302
    case Qt::Key_Clear:
303
      return VK_CLEAR;
304
    case Qt::Key_F1:
305
      return VK_F1;
306
    case Qt::Key_F2:
307
      return VK_F2;
308
    case Qt::Key_F3:
309
      return VK_F3;
310
    case Qt::Key_F4:
311
      return VK_F4;
312
    case Qt::Key_F5:
313
      return VK_F5;
314
    case Qt::Key_F6:
315
      return VK_F6;
316
    case Qt::Key_F7:
317
      return VK_F7;
318
    case Qt::Key_F8:
319
      return VK_F8;
320
    case Qt::Key_F9:
321
      return VK_F9;
322
    case Qt::Key_F10:
323
      return VK_F10;
324
    case Qt::Key_F11:
325
      return VK_F11;
326
    case Qt::Key_F12:
327
      return VK_F12;
328
    case Qt::Key_F13:
329
      return VK_F13;
330
    case Qt::Key_F14:
331
      return VK_F14;
332
    case Qt::Key_F15:
333
      return VK_F15;
334
    case Qt::Key_F16:
335
      return VK_F16;
336
    case Qt::Key_F17:
337
      return VK_F17;
338
    case Qt::Key_F18:
339
      return VK_F18;
340
    case Qt::Key_F19:
341
      return VK_F19;
342
    case Qt::Key_F20:
343
      return VK_F20;
344
    case Qt::Key_F21:
345
      return VK_F21;
346
    case Qt::Key_F22:
347
      return VK_F22;
348
    case Qt::Key_F23:
349
      return VK_F23;
350
    case Qt::Key_F24:
351
      return VK_F24;
352
    case Qt::Key_Help:
353
      return VK_HELP;
354
 
355
    case Qt::Key_Space:
356
      return VK_SPACE;
357
 
358
    case Qt::Key_Exclam:
359
      return VK_EXCLAMATION_MARK;
360
    case Qt::Key_QuoteDbl:
361
      return VK_QUOTEDBL;
362
    case Qt::Key_NumberSign:
363
      return VK_NUMBER_SIGN;
364
 
365
    case Qt::Key_Dollar:
366
      return VK_DOLLAR;
367
 
368
 
369
    case Qt::Key_Ampersand:
370
      return VK_AMPERSAND;
371
 
372
    case Qt::Key_ParenLeft:
373
      return VK_LEFT_PARENTHESIS;
374
    case Qt::Key_ParenRight:
375
      return VK_RIGHT_PARENTHESIS;
376
    case Qt::Key_Asterisk:
377
      return VK_ASTERISK;
378
    case Qt::Key_Plus:
379
      return VK_PLUS;
380
    case Qt::Key_Comma:
381
      return VK_COMMA;
382
    case Qt::Key_Minus:
383
      return VK_MINUS;
384
    case Qt::Key_Period:
385
      return VK_PERIOD;
386
    case Qt::Key_Slash:
387
      return VK_SLASH;
388
 
389
    case Qt::Key_0:
390
      return VK_0;
391
    case Qt::Key_1:
392
      return VK_1;
393
    case Qt::Key_2:
394
      return VK_2;
395
    case Qt::Key_3:
396
      return VK_3;
397
    case Qt::Key_4:
398
      return VK_4;
399
    case Qt::Key_5:
400
      return VK_5  ;
401
    case Qt::Key_6:
402
      return VK_6;
403
    case Qt::Key_7:
404
      return VK_7;
405
    case Qt::Key_8:
406
      return VK_8;
407
    case Qt::Key_9:
408
      return VK_9;
409
 
410
    case Qt::Key_Colon:
411
      return VK_COLON;
412
    case Qt::Key_Semicolon:
413
      return VK_SEMICOLON;
414
    case Qt::Key_Less:
415
      return VK_LESS;
416
    case Qt::Key_Equal:
417
      return VK_EQUALS;
418
    case Qt::Key_Greater:
419
      return VK_GREATER;
420
    case Qt::Key_Question:
421
    case Qt::Key_At:
422
 
423
    case Qt::Key_A:
424
      return VK_A;
425
    case Qt::Key_B:
426
      return VK_B;
427
    case Qt::Key_C:
428
      return VK_C;
429
    case Qt::Key_D:
430
      return VK_D;
431
    case Qt::Key_E:
432
      return VK_E;
433
    case Qt::Key_F:
434
      return VK_F;
435
    case Qt::Key_G:
436
      return VK_G;
437
    case Qt::Key_H:
438
      return VK_H;
439
    case Qt::Key_I:
440
      return VK_I;
441
    case Qt::Key_J:
442
      return VK_J;
443
    case Qt::Key_K:
444
      return VK_K;
445
    case Qt::Key_L:
446
      return VK_L;
447
    case Qt::Key_M:
448
      return VK_M;
449
    case Qt::Key_N:
450
      return VK_N;
451
    case Qt::Key_O:
452
      return VK_O;
453
    case Qt::Key_P:
454
      return VK_P;
455
    case Qt::Key_Q:
456
      return VK_Q;
457
    case Qt::Key_R:
458
      return VK_R;
459
    case Qt::Key_S:
460
      return VK_S;
461
    case Qt::Key_T:
462
      return VK_T;
463
    case Qt::Key_U:
464
      return VK_U;
465
    case Qt::Key_V:
466
      return VK_V;
467
    case Qt::Key_W:
468
      return VK_W;
469
    case Qt::Key_X:
470
      return VK_X;
471
    case Qt::Key_Y:
472
      return VK_Y;
473
    case Qt::Key_Z:
474
      return VK_Z;
475
    case Qt::Key_division:
476
      return VK_DIVIDE;
477
    case Qt::Key_BracketLeft:
478
      return VK_OPEN_BRACKET;
479
    case Qt::Key_Backslash:
480
      return VK_BACK_SLASH;
481
    case Qt::Key_BracketRight:
482
      return VK_CLOSE_BRACKET;
483
    case Qt::Key_BraceLeft:
484
      return VK_BRACELEFT;
485
    case Qt::Key_BraceRight:
486
      return VK_BRACERIGHT;
487
    case Qt::Key_brokenbar:
488
      return VK_SEPARATOR; // correct?
489
 
490
    default:
491
      return VK_UNDEFINED;
492
    }
493
}
494
 
495
int getUnicode(QKeyEvent *key)
496
{
497
  QString s = key->text();
498
  if(s.isEmpty())
499
    return 0; // CHAR_UNDEFINED
500
  QChar c = s.at(0);
501
  return (int)c.unicode();
502
}
503
 
504
/**
505
 * Returns the key modifiers in KeyEvent format
506
 */
507
int getKeyModifiers(Qt::KeyboardModifiers state)
508
{
509
  int modifier = 0;
510
  if( state & Qt::ShiftModifier )
511
    modifier |= SHIFT_DOWN_MASK;
512
  if( state & Qt::ControlModifier )
513
    modifier |= CTRL_DOWN_MASK;
514
  if( state & Qt::AltModifier )
515
    modifier |= ALT_DOWN_MASK;
516
  if( state & Qt::MetaModifier )
517
    modifier |= META_DOWN_MASK;
518
 
519
  return modifier;
520
}
521
 
522
/**
523
 * Returns the key modifiers in ActionEvent format
524
 */
525
int getAEKeyModifiers(Qt::KeyboardModifiers state)
526
{
527
  int modifier = 0;
528
  if( state & Qt::ShiftModifier )
529
    modifier |= SHIFT_MASK;
530
  if( state & Qt::ControlModifier )
531
    modifier |= CTRL_MASK;
532
  if( state & Qt::AltModifier )
533
    modifier |= ALT_MASK;
534
  if( state & Qt::MetaModifier )
535
    modifier |= META_MASK;
536
 
537
  return modifier;
538
}
539
 
540
/**
541
 * Returns the mouse modifiers in InputEvent format
542
 */
543
int getMouseModifiers(QMouseEvent *e)
544
{
545
  int modifier = 0;
546
  int buttons = e->buttons();
547
  int state = e->modifiers();
548
 
549
  if( buttons & Qt::LeftButton )
550
    modifier |= BUTTON1_DOWN_MASK;
551
  if( buttons & Qt::MidButton )
552
    modifier |= BUTTON2_DOWN_MASK;
553
  if( buttons & Qt::RightButton )
554
    modifier |= BUTTON3_DOWN_MASK;
555
 
556
  if( state & Qt::ShiftModifier )
557
    modifier |= SHIFT_DOWN_MASK;
558
  if( state & Qt::ControlModifier )
559
    modifier |= CTRL_DOWN_MASK;
560
  if( state & Qt::AltModifier )
561
    modifier |= ALT_DOWN_MASK;
562
  if( state & Qt::MetaModifier )
563
    modifier |= META_DOWN_MASK;
564
 
565
  // FIXME: Alt Gr?
566
  return modifier;
567
}
568
 
569
/**
570
 * Returns the mouse modifiers in InputEvent format
571
 * We need a different method here because e->buttons() doesn't work for,
572
 * mouseReleased events. (But strangely enough it does for pressed ones)
573
 */
574
int getReleaseModifiers(QMouseEvent *e)
575
{
576
  int modifier = 0;
577
  int button = e->button();
578
  int state = e->modifiers();
579
 
580
  if( button & Qt::LeftButton )
581
    modifier |= BUTTON1_DOWN_MASK;
582
  if( button & Qt::MidButton )
583
    modifier |= BUTTON2_DOWN_MASK;
584
  if( button & Qt::RightButton )
585
    modifier |= BUTTON3_DOWN_MASK;
586
 
587
  if( state & Qt::ShiftModifier )
588
    modifier |= SHIFT_DOWN_MASK;
589
  if( state & Qt::ControlModifier )
590
    modifier |= CTRL_DOWN_MASK;
591
  if( state & Qt::AltModifier )
592
    modifier |= ALT_DOWN_MASK;
593
  if( state & Qt::MetaModifier )
594
    modifier |= META_DOWN_MASK;
595
 
596
  // FIXME: Alt Gr?
597
  return modifier;
598
}
599
 
600
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.