Index: third_party/google_input_tools/src/chrome/os/inputview/hwt_util.js |
diff --git a/third_party/google_input_tools/src/chrome/os/inputview/hwt_util.js b/third_party/google_input_tools/src/chrome/os/inputview/hwt_util.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..be95e26f55795e98ee421e9d7cbba528ea356af2 |
--- /dev/null |
+++ b/third_party/google_input_tools/src/chrome/os/inputview/hwt_util.js |
@@ -0,0 +1,74 @@ |
+// Copyright 2014 The ChromeOS IME Authors. All Rights Reserved. |
+// limitations under the License. |
+// See the License for the specific language governing permissions and |
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+// distributed under the License is distributed on an "AS-IS" BASIS, |
+// Unless required by applicable law or agreed to in writing, software |
+// |
+// http://www.apache.org/licenses/LICENSE-2.0 |
+// |
+// You may obtain a copy of the License at |
+// you may not use this file except in compliance with the License. |
+// Licensed under the Apache License, Version 2.0 (the "License"); |
+// |
+ |
+/** |
+ * @fileoverview Defines the class i18n.input.hwt.util. |
+ * @author fengyuan@google.com (Feng Yuan) |
+ */ |
+ |
+goog.provide('i18n.input.hwt.util'); |
+ |
+ |
+goog.require('goog.array'); |
+goog.require('goog.events.EventType'); |
+goog.require('i18n.input.common.dom'); |
+ |
+ |
+/** |
+ * Listens MOUSEUP on page scope. |
+ * |
+ * @param {goog.events.EventHandler} eventHandler The event handler. |
+ * @param {Document} topDocument The top document. |
+ * @param {goog.events.EventType | !Array.<goog.events.EventType>} eventType |
+ * The event type to listen. |
+ * @param {Function} callback The callback method. |
+ */ |
+i18n.input.hwt.util.listenPageEvent = function(eventHandler, topDocument, |
+ eventType, callback) { |
+ // Ideally we'd just listen for MOUSEUP on the canvas, but that |
+ // doesn't work if the mouseup event happens outside the canvas, |
+ // and in particular if it happens in an iframe. So we have to |
+ // listen on the document and any embedded iframes. We'll also |
+ // use this handler to cancel auto-repeat when holding down |
+ // the backspace button, in case the user releases the button |
+ // elsewhere. |
+ eventHandler.listen(topDocument, goog.events.EventType.MOUSEUP, |
+ callback, true); |
+ goog.array.forEach(i18n.input.common.dom.getSameDomainDocuments(topDocument), |
+ function(frameDoc) { |
+ try { |
+ // In IE and FF3.5, some iframe is not allowed to access. |
+ // It throws exception when access the iframe property. |
+ eventHandler.listen(frameDoc, goog.events.EventType.MOUSEUP, |
+ callback, true); |
+ } catch (e) {} |
+ }); |
+}; |
+ |
+ |
+/** |
+ * The default candidate map of handwriting pad. |
+ * Key: language code. |
+ * Value: candidate list. |
+ * |
+ * @type {!Object.<string, !Array.<string>>} |
+ */ |
+i18n.input.hwt.util.DEFAULT_CANDIDATE_MAP = { |
+ '': [',', '.', '?', '!', ':', '\'', '"', ';', '@'], |
+ 'es': [',', '.', '¿', '?', '¡', '!', ':', '\'', '"'], |
+ 'ja': [',', '。', '?', '!', ':', '「', '」', ';'], |
+ 'zh-Hans': [',', '。', '?', '!', ':', '“', '”', ';'], |
+ 'zh-Hant': [',', '。', '?', '!', ':', '「', '」', ';'] |
+}; |
+ |