Index: third_party/google_input_tools/src/chrome/os/inputview/covariance.js |
diff --git a/third_party/google_input_tools/src/chrome/os/inputview/covariance.js b/third_party/google_input_tools/src/chrome/os/inputview/covariance.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..facf5c11fe4989e39b27a176e2cba7e83e46ec40 |
--- /dev/null |
+++ b/third_party/google_input_tools/src/chrome/os/inputview/covariance.js |
@@ -0,0 +1,111 @@ |
+// 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"); |
+// |
+goog.provide('i18n.input.chrome.inputview.Covariance'); |
+ |
+goog.require('i18n.input.chrome.inputview.elements.ElementType'); |
+ |
+ |
+goog.scope(function() { |
+var ElementType = i18n.input.chrome.inputview.elements.ElementType; |
+ |
+ |
+ |
+/** |
+ * The covariance used for gaussian model. |
+ * |
+ * @constructor |
+ */ |
+i18n.input.chrome.inputview.Covariance = function() { |
+ /** @private {number} */ |
+ this.breakDown_ = 0; |
+}; |
+var Covariance = i18n.input.chrome.inputview.Covariance; |
+ |
+ |
+/** |
+ * The break-down for covariance. |
+ * |
+ * @enum {number} |
+ */ |
+Covariance.BreakDown = { |
+ A11Y: 1, |
+ HORIZONTAL: 2, |
+ WIDE_SCREEN: 4 |
+}; |
+ |
+ |
+/** |
+ * The key type. |
+ * |
+ * @type {!Object.<ElementType, number>} |
+ */ |
+Covariance.ElementTypeMap = goog.object.create( |
+ ElementType.CHARACTER_KEY, 0, |
+ ElementType.COMPACT_KEY, 1 |
+); |
+ |
+ |
+/** |
+ * The value. |
+ * Key: the break down value. |
+ * Value: A list - first is the covariance for full keyboard, second is for |
+ * compact. |
+ * |
+ * @private {!Object.<!Array.<number>>} |
+ */ |
+Covariance.VALUE_ = { |
+ 0: [120, 160], |
+ 1: [130, 0], |
+ 2: [235, 342], |
+ 3: [162, 0], |
+ 4: [160, 213], |
+ 5: [142, 0], |
+ 6: [230, 332], |
+ 7: [162, 0] |
+}; |
+ |
+ |
+/** |
+ * Updates the covariance. |
+ * |
+ * @param {boolean} isWideScreen . |
+ * @param {boolean} isHorizontal . |
+ * @param {boolean} isA11y . |
+ */ |
+Covariance.prototype.update = function(isWideScreen, isHorizontal, isA11y) { |
+ this.breakDown_ = 0; |
+ if (isWideScreen) { |
+ this.breakDown_ |= Covariance.BreakDown.WIDE_SCREEN; |
+ } |
+ if (isHorizontal) { |
+ this.breakDown_ |= Covariance.BreakDown.HORIZONTAL; |
+ } |
+ if (isA11y) { |
+ this.breakDown_ |= Covariance.BreakDown.A11Y; |
+ } |
+}; |
+ |
+ |
+/** |
+ * Gets the covariance value. |
+ * |
+ * @param {ElementType} type . |
+ */ |
+Covariance.prototype.getValue = function(type) { |
+ var index = Covariance.ElementTypeMap[type]; |
+ return Covariance.VALUE_[this.breakDown_][index]; |
+}; |
+ |
+}); // goog.scope |
+ |