~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to www/media/common/edit_area/keyboard.js

  • Committer: William Grant
  • Date: 2008-07-07 01:45:11 UTC
  • mfrom: (unknown (missing))
  • Revision ID: wgrant@ugrad.unimelb.edu.au-20080707014511-xyy43p6y8jiqrsh9
Merge killall-editarea branch. We now use CodePress instead, which is
somewhat less slothful.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
var clavier_cds=new Object(146);
2
 
        clavier_cds[8]="Retour arriere";
3
 
        clavier_cds[9]="Tabulation";
4
 
        clavier_cds[12]="Milieu (pave numerique)";
5
 
        clavier_cds[13]="Entrer";
6
 
        clavier_cds[16]="Shift";
7
 
        clavier_cds[17]="Ctrl";
8
 
        clavier_cds[18]="Alt";
9
 
        clavier_cds[19]="Pause";
10
 
        clavier_cds[20]="Verr Maj";
11
 
        clavier_cds[27]="Esc";
12
 
        clavier_cds[32]="Espace";
13
 
        clavier_cds[33]="Page up";
14
 
        clavier_cds[34]="Page down";
15
 
        clavier_cds[35]="End";
16
 
        clavier_cds[36]="Begin";
17
 
        clavier_cds[37]="Fleche gauche";
18
 
        clavier_cds[38]="Fleche haut";
19
 
        clavier_cds[39]="Fleche droite";
20
 
        clavier_cds[40]="Fleche bas";
21
 
        clavier_cds[44]="Impr ecran";
22
 
        clavier_cds[45]="Inser";
23
 
        clavier_cds[46]="Suppr";
24
 
        clavier_cds[91]="Menu Demarrer Windows / touche pomme Mac";
25
 
        clavier_cds[92]="Menu Demarrer Windows";
26
 
        clavier_cds[93]="Menu contextuel Windows";
27
 
        clavier_cds[112]="F1";
28
 
        clavier_cds[113]="F2";
29
 
        clavier_cds[114]="F3";
30
 
        clavier_cds[115]="F4";
31
 
        clavier_cds[116]="F5";
32
 
        clavier_cds[117]="F6";
33
 
        clavier_cds[118]="F7";
34
 
        clavier_cds[119]="F8";
35
 
        clavier_cds[120]="F9";
36
 
        clavier_cds[121]="F10";
37
 
        clavier_cds[122]="F11";
38
 
        clavier_cds[123]="F12";
39
 
        clavier_cds[144]="Verr Num";
40
 
        clavier_cds[145]="Arret defil";
41
 
 
42
 
 
43
 
 
44
 
        function keyDown(e){
45
 
                if(!e){ // if IE
46
 
                        e=event;
47
 
                }
48
 
                
49
 
                // send the event to the plugins
50
 
                for(var i in editArea.plugins){
51
 
                        if(typeof(editArea.plugins[i].onkeydown)=="function"){
52
 
                                if(editArea.plugins[i].onkeydown(e)===false){ // stop propaging
53
 
                                        if(editArea.nav['isIE'])
54
 
                                                e.keyCode=0;
55
 
                                        return false;
56
 
                                }
57
 
                        }
58
 
                }
59
 
 
60
 
                var target_id=(e.target || e.srcElement).id;
61
 
                var use=false;
62
 
                if (clavier_cds[e.keyCode])
63
 
                        letter=clavier_cds[e.keyCode];
64
 
                else
65
 
                        letter=String.fromCharCode(e.keyCode);
66
 
                
67
 
                var low_letter= letter.toLowerCase();
68
 
                                
69
 
                if(letter=="Tabulation" && target_id=="textarea" && !CtrlPressed(e) && !AltPressed(e)){ 
70
 
                        if(ShiftPressed(e))
71
 
                                editArea.execCommand("invert_tab_selection");
72
 
                        else
73
 
                                editArea.execCommand("tab_selection");
74
 
                        
75
 
                        use=true;
76
 
                        if(editArea.nav['isOpera'])     // opera can't cancel tabulation events...
77
 
                                setTimeout("editArea.execCommand('focus');", 1);
78
 
                }else if(letter=="Entrer" && target_id=="textarea"){
79
 
                        if(editArea.press_enter())
80
 
                                use=true;
81
 
                }else if(letter=="Entrer" && target_id=="area_search"){
82
 
                        editArea.execCommand("area_search");
83
 
                        use=true;
84
 
                }else if(letter=="Page up" && !editArea.nav['isOpera']){
85
 
                        editArea.execCommand("scroll_page", {"dir": "up", "shift": ShiftPressed(e)});
86
 
                        use=true;
87
 
                }else if(letter=="Page down" && !editArea.nav['isOpera']){
88
 
                        editArea.execCommand("scroll_page", {"dir": "down", "shift": ShiftPressed(e)});
89
 
                        use=true;
90
 
                }else if(letter=="Esc"){
91
 
                        editArea.execCommand("close_all_inline_popup", e);
92
 
                        use=true;
93
 
                }else if(CtrlPressed(e) && !AltPressed(e) && !ShiftPressed(e)){
94
 
                        switch(low_letter){
95
 
                                case "f":                               
96
 
                                        editArea.execCommand("area_search");
97
 
                                        use=true;
98
 
                                        break;
99
 
                                case "r":
100
 
                                        editArea.execCommand("area_replace");
101
 
                                        use=true;
102
 
                                        break;
103
 
                                case "q":
104
 
                                        editArea.execCommand("close_all_inline_popup", e);
105
 
                                        use=true;
106
 
                                        break;
107
 
                                case "h":
108
 
                                        editArea.execCommand("change_highlight");                       
109
 
                                        use=true;
110
 
                                        break;
111
 
                                case "g":
112
 
                                        setTimeout("editArea.execCommand('go_to_line');", 5);   // the prompt stop the return false otherwise
113
 
                                        use=true;
114
 
                                        break;
115
 
                                case "e":
116
 
                                        editArea.execCommand("show_help");
117
 
                                        use=true;
118
 
                                        break;
119
 
                                case "z":
120
 
                                        use=true;
121
 
                                        editArea.execCommand("undo");
122
 
                                        break;
123
 
                                case "y":
124
 
                                        use=true;
125
 
                                        editArea.execCommand("redo");
126
 
                                        break;
127
 
                                default:
128
 
                                        break;                  
129
 
                        }               
130
 
                }               
131
 
                
132
 
                // check to disable the redo possibility if the textarea content change
133
 
                if(editArea.next.length > 0){
134
 
                        setTimeout("editArea.check_redo();", 10);
135
 
                }
136
 
                
137
 
                setTimeout("editArea.check_file_changes();", 10);
138
 
                
139
 
                
140
 
                if(use){
141
 
                        // in case of a control that sould'nt be used by IE but that is used => THROW a javascript error that will stop key action
142
 
                        if(editArea.nav['isIE'])
143
 
                                e.keyCode=0;
144
 
                        return false;
145
 
                }
146
 
                //alert("Test: "+ letter + " ("+e.keyCode+") ALT: "+ AltPressed(e) + " CTRL "+ CtrlPressed(e) + " SHIFT "+ ShiftPressed(e));
147
 
                
148
 
                return true;
149
 
                
150
 
        };
151
 
 
152
 
 
153
 
        // return true if Alt key is pressed
154
 
        function AltPressed(e) {
155
 
                if (window.event) {
156
 
                        return (window.event.altKey);
157
 
                } else {
158
 
                        if(e.modifiers)
159
 
                                return (e.altKey || (e.modifiers % 2));
160
 
                        else
161
 
                                return e.altKey;
162
 
                }
163
 
        };
164
 
 
165
 
        // return true if Ctrl key is pressed
166
 
        function CtrlPressed(e) {
167
 
                if (window.event) {
168
 
                        return (window.event.ctrlKey);
169
 
                } else {
170
 
                        return (e.ctrlKey || (e.modifiers==2) || (e.modifiers==3) || (e.modifiers>5));
171
 
                }
172
 
        };
173
 
 
174
 
        // return true if Shift key is pressed
175
 
        function ShiftPressed(e) {
176
 
                if (window.event) {
177
 
                        return (window.event.shiftKey);
178
 
                } else {
179
 
                        return (e.shiftKey || (e.modifiers>3));
180
 
                }
181
 
        };
182
 
 
183