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";
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";
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'])
60
var target_id=(e.target || e.srcElement).id;
62
if (clavier_cds[e.keyCode])
63
letter=clavier_cds[e.keyCode];
65
letter=String.fromCharCode(e.keyCode);
67
var low_letter= letter.toLowerCase();
69
if(letter=="Tabulation" && target_id=="textarea" && !CtrlPressed(e) && !AltPressed(e)){
71
editArea.execCommand("invert_tab_selection");
73
editArea.execCommand("tab_selection");
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())
81
}else if(letter=="Entrer" && target_id=="area_search"){
82
editArea.execCommand("area_search");
84
}else if(letter=="Page up" && !editArea.nav['isOpera']){
85
editArea.execCommand("scroll_page", {"dir": "up", "shift": ShiftPressed(e)});
87
}else if(letter=="Page down" && !editArea.nav['isOpera']){
88
editArea.execCommand("scroll_page", {"dir": "down", "shift": ShiftPressed(e)});
90
}else if(letter=="Esc"){
91
editArea.execCommand("close_all_inline_popup", e);
93
}else if(CtrlPressed(e) && !AltPressed(e) && !ShiftPressed(e)){
96
editArea.execCommand("area_search");
100
editArea.execCommand("area_replace");
104
editArea.execCommand("close_all_inline_popup", e);
108
editArea.execCommand("change_highlight");
112
setTimeout("editArea.execCommand('go_to_line');", 5); // the prompt stop the return false otherwise
116
editArea.execCommand("show_help");
121
editArea.execCommand("undo");
125
editArea.execCommand("redo");
132
// check to disable the redo possibility if the textarea content change
133
if(editArea.next.length > 0){
134
setTimeout("editArea.check_redo();", 10);
137
setTimeout("editArea.check_file_changes();", 10);
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'])
146
//alert("Test: "+ letter + " ("+e.keyCode+") ALT: "+ AltPressed(e) + " CTRL "+ CtrlPressed(e) + " SHIFT "+ ShiftPressed(e));
153
// return true if Alt key is pressed
154
function AltPressed(e) {
156
return (window.event.altKey);
159
return (e.altKey || (e.modifiers % 2));
165
// return true if Ctrl key is pressed
166
function CtrlPressed(e) {
168
return (window.event.ctrlKey);
170
return (e.ctrlKey || (e.modifiers==2) || (e.modifiers==3) || (e.modifiers>5));
174
// return true if Shift key is pressed
175
function ShiftPressed(e) {
177
return (window.event.shiftKey);
179
return (e.shiftKey || (e.modifiers>3));