00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 CPKeyCodes = {
00026 BACKSPACE: 8,
00027 TAB: 9,
00028 NUM_CENTER: 12,
00029 ENTER: 13,
00030 SHIFT: 16,
00031 CTRL: 17,
00032 ALT: 18,
00033 PAUSE: 19,
00034 CAPS_LOCK: 20,
00035 ESC: 27,
00036 SPACE: 32,
00037 PAGE_UP: 33,
00038 PAGE_DOWN: 34,
00039 END: 35,
00040 HOME: 36,
00041 LEFT: 37,
00042 UP: 38,
00043 RIGHT: 39,
00044 DOWN: 40,
00045 PRINT_SCREEN: 44,
00046 INSERT: 45,
00047 DELETE: 46,
00048 ZERO: 48,
00049 ONE: 49,
00050 TWO: 50,
00051 THREE: 51,
00052 FOUR: 52,
00053 FIVE: 53,
00054 SIX: 54,
00055 SEVEN: 55,
00056 EIGHT: 56,
00057 NINE: 57,
00058 QUESTION_MARK: 63,
00059 A: 65,
00060 B: 66,
00061 C: 67,
00062 D: 68,
00063 E: 69,
00064 F: 70,
00065 G: 71,
00066 H: 72,
00067 I: 73,
00068 J: 74,
00069 K: 75,
00070 L: 76,
00071 M: 77,
00072 N: 78,
00073 O: 79,
00074 P: 80,
00075 Q: 81,
00076 R: 82,
00077 S: 83,
00078 T: 84,
00079 U: 85,
00080 V: 86,
00081 W: 87,
00082 X: 88,
00083 Y: 89,
00084 Z: 90,
00085 META: 91,
00086 CONTEXT_MENU: 93,
00087 NUM_ZERO: 96,
00088 NUM_ONE: 97,
00089 NUM_TWO: 98,
00090 NUM_THREE: 99,
00091 NUM_FOUR: 100,
00092 NUM_FIVE: 101,
00093 NUM_SIX: 102,
00094 NUM_SEVEN: 103,
00095 NUM_EIGHT: 104,
00096 NUM_NINE: 105,
00097 NUM_MULTIPLY: 106,
00098 NUM_PLUS: 107,
00099 NUM_MINUS: 109,
00100 NUM_PERIOD: 110,
00101 NUM_DIVISION: 111,
00102 F1: 112,
00103 F2: 113,
00104 F3: 114,
00105 F4: 115,
00106 F5: 116,
00107 F6: 117,
00108 F7: 118,
00109 F8: 119,
00110 F9: 120,
00111 F10: 121,
00112 F11: 122,
00113 F12: 123,
00114 NUMLOCK: 144,
00115 SEMICOLON: 186,
00116 DASH: 189,
00117 EQUALS: 187,
00118 COMMA: 188,
00119 PERIOD: 190,
00120 SLASH: 191,
00121 APOSTROPHE: 192,
00122 SINGLE_QUOTE: 222,
00123 OPEN_SQUARE_BRACKET: 219,
00124 BACKSLASH: 220,
00125 CLOSE_SQUARE_BRACKET: 221,
00126 WIN_KEY: 224,
00127 MAC_FF_META: 224,
00128 WIN_IME: 229
00129 };
00130
00131
00159 CPKeyCodes.firesKeyPressEvent = function(keyCode, opt_heldKeyCode, opt_shiftKey, opt_ctrlKey, opt_altKey)
00160 {
00161 if (!CPFeatureIsCompatible(CPJavascriptRemedialKeySupport))
00162 return true;
00163
00164 if (CPBrowserIsOperatingSystem(CPMacOperatingSystem) && opt_altKey)
00165 return CPKeyCodes.isCharacterKey(keyCode);
00166
00167
00168 if (opt_altKey && !opt_ctrlKey)
00169 return false;
00170
00171
00172 if (CPBrowserIsEngine(CPInternetExplorerBrowserEngine) && !opt_shiftKey && (opt_ctrlKey || opt_altKey))
00173 return false;
00174
00175
00176
00177 if (CPBrowserIsEngine(CPInternetExplorerBrowserEngine) && opt_ctrlKey && opt_heldKeyCode == keyCode)
00178 return false;
00179
00180 switch (keyCode)
00181 {
00182 case CPKeyCodes.ENTER: return true;
00183 case CPKeyCodes.ESC: return !CPBrowserIsEngine(CPWebKitBrowserEngine);
00184 }
00185
00186 return CPKeyCodes.isCharacterKey(keyCode);
00187 };
00188
00189
00196 CPKeyCodes.isCharacterKey = function(keyCode)
00197 {
00198 if (keyCode >= CPKeyCodes.ZERO && keyCode <= CPKeyCodes.NINE)
00199 return true;
00200
00201 if (keyCode >= CPKeyCodes.NUM_ZERO && keyCode <= CPKeyCodes.NUM_MULTIPLY)
00202 return true;
00203
00204 if (keyCode >= CPKeyCodes.A && keyCode <= CPKeyCodes.Z)
00205 return true;
00206
00207 switch (keyCode)
00208 {
00209 case CPKeyCodes.SPACE:
00210 case CPKeyCodes.QUESTION_MARK:
00211 case CPKeyCodes.NUM_PLUS:
00212 case CPKeyCodes.NUM_MINUS:
00213 case CPKeyCodes.NUM_PERIOD:
00214 case CPKeyCodes.NUM_DIVISION:
00215 case CPKeyCodes.SEMICOLON:
00216 case CPKeyCodes.DASH:
00217 case CPKeyCodes.EQUALS:
00218 case CPKeyCodes.COMMA:
00219 case CPKeyCodes.PERIOD:
00220 case CPKeyCodes.SLASH:
00221 case CPKeyCodes.APOSTROPHE:
00222 case CPKeyCodes.SINGLE_QUOTE:
00223 case CPKeyCodes.OPEN_SQUARE_BRACKET:
00224 case CPKeyCodes.BACKSLASH:
00225 case CPKeyCodes.CLOSE_SQUARE_BRACKET:
00226 return true;
00227
00228 default:
00229 return false;
00230 }
00231 }