~ubuntu-branches/ubuntu/saucy/emscripten/saucy-proposed

« back to all changes in this revision

Viewing changes to third_party/websockify/include/keysym.js

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-02 13:11:51 UTC
  • Revision ID: package-import@ubuntu.com-20130502131151-q8dvteqr1ef2x7xz
Tags: upstream-1.4.1~20130504~adb56cb
ImportĀ upstreamĀ versionĀ 1.4.1~20130504~adb56cb

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * from noVNC: HTML5 VNC client
 
3
 * Copyright (C) 2010 Joel Martin
 
4
 * Licensed under LGPL-3 (see LICENSE.txt)
 
5
 */
 
6
 
 
7
/* Translate DOM key down/up event to keysym value */
 
8
function getKeysym(e) {
 
9
    var evt, keysym;
 
10
    evt = (e ? e : window.event);
 
11
 
 
12
    /* Remap modifier and special keys */
 
13
    switch ( evt.keyCode ) {
 
14
        case 8         : keysym = 0xFF08; break; // BACKSPACE
 
15
        case 9         : keysym = 0xFF09; break; // TAB
 
16
        case 13        : keysym = 0xFF0D; break; // ENTER
 
17
        case 27        : keysym = 0xFF1B; break; // ESCAPE
 
18
        case 45        : keysym = 0xFF63; break; // INSERT
 
19
        case 46        : keysym = 0xFFFF; break; // DELETE
 
20
        case 36        : keysym = 0xFF50; break; // HOME
 
21
        case 35        : keysym = 0xFF57; break; // END
 
22
        case 33        : keysym = 0xFF55; break; // PAGE_UP
 
23
        case 34        : keysym = 0xFF56; break; // PAGE_DOWN
 
24
        case 37        : keysym = 0xFF51; break; // LEFT
 
25
        case 38        : keysym = 0xFF52; break; // UP
 
26
        case 39        : keysym = 0xFF53; break; // RIGHT
 
27
        case 40        : keysym = 0xFF54; break; // DOWN
 
28
        case 112       : keysym = 0xFFBE; break; // F1
 
29
        case 113       : keysym = 0xFFBF; break; // F2
 
30
        case 114       : keysym = 0xFFC0; break; // F3
 
31
        case 115       : keysym = 0xFFC1; break; // F4
 
32
        case 116       : keysym = 0xFFC2; break; // F5
 
33
        case 117       : keysym = 0xFFC3; break; // F6
 
34
        case 118       : keysym = 0xFFC4; break; // F7
 
35
        case 119       : keysym = 0xFFC5; break; // F8
 
36
        case 120       : keysym = 0xFFC6; break; // F9
 
37
        case 121       : keysym = 0xFFC7; break; // F10
 
38
        case 122       : keysym = 0xFFC8; break; // F11
 
39
        case 123       : keysym = 0xFFC9; break; // F12
 
40
        case 16        : keysym = 0xFFE1; break; // SHIFT
 
41
        case 17        : keysym = 0xFFE3; break; // CONTROL
 
42
        //case 18        : keysym = 0xFFE7; break; // Left Meta (Mac Option)
 
43
        case 18        : keysym = 0xFFE9; break; // Left ALT (Mac Command)
 
44
        default        : keysym = evt.keyCode; break;
 
45
    }
 
46
 
 
47
    /* Remap symbols */
 
48
    switch (keysym) {
 
49
        case 186       : keysym = 59; break; // ;  (IE)
 
50
        case 187       : keysym = 61; break; // =  (IE)
 
51
        case 188       : keysym = 44; break; // ,  (Mozilla, IE)
 
52
        case 109       :                     // -  (Mozilla)
 
53
            if (Util.Engine.gecko) {
 
54
                         keysym = 45; }
 
55
                                      break;
 
56
        case 189       : keysym = 45; break; // -  (IE)
 
57
        case 190       : keysym = 46; break; // .  (Mozilla, IE)
 
58
        case 191       : keysym = 47; break; // /  (Mozilla, IE)
 
59
        case 192       : keysym = 96; break; // `  (Mozilla, IE)
 
60
        case 219       : keysym = 91; break; // [  (Mozilla, IE)
 
61
        case 220       : keysym = 92; break; // \  (Mozilla, IE)
 
62
        case 221       : keysym = 93; break; // ]  (Mozilla, IE)
 
63
        case 222       : keysym = 39; break; // '  (Mozilla, IE)
 
64
    }
 
65
    
 
66
    /* Remap shifted and unshifted keys */
 
67
    if (!!evt.shiftKey) {
 
68
        switch (keysym) {
 
69
            case 48        : keysym = 41 ; break; // )  (shifted 0)
 
70
            case 49        : keysym = 33 ; break; // !  (shifted 1)
 
71
            case 50        : keysym = 64 ; break; // @  (shifted 2)
 
72
            case 51        : keysym = 35 ; break; // #  (shifted 3)
 
73
            case 52        : keysym = 36 ; break; // $  (shifted 4)
 
74
            case 53        : keysym = 37 ; break; // %  (shifted 5)
 
75
            case 54        : keysym = 94 ; break; // ^  (shifted 6)
 
76
            case 55        : keysym = 38 ; break; // &  (shifted 7)
 
77
            case 56        : keysym = 42 ; break; // *  (shifted 8)
 
78
            case 57        : keysym = 40 ; break; // (  (shifted 9)
 
79
 
 
80
            case 59        : keysym = 58 ; break; // :  (shifted `)
 
81
            case 61        : keysym = 43 ; break; // +  (shifted ;)
 
82
            case 44        : keysym = 60 ; break; // <  (shifted ,)
 
83
            case 45        : keysym = 95 ; break; // _  (shifted -)
 
84
            case 46        : keysym = 62 ; break; // >  (shifted .)
 
85
            case 47        : keysym = 63 ; break; // ?  (shifted /)
 
86
            case 96        : keysym = 126; break; // ~  (shifted `)
 
87
            case 91        : keysym = 123; break; // {  (shifted [)
 
88
            case 92        : keysym = 124; break; // |  (shifted \)
 
89
            case 93        : keysym = 125; break; // }  (shifted ])
 
90
            case 39        : keysym = 34 ; break; // "  (shifted ')
 
91
        }
 
92
    } else if ((keysym >= 65) && (keysym <=90)) {
 
93
        /* Remap unshifted A-Z */
 
94
        keysym += 32;
 
95
    } 
 
96
 
 
97
    return keysym;
 
98
}
 
99