Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(733)

Unified Diff: third_party/google_input_tools/src/chrome/os/inputview/layouts/util.js

Issue 674153004: Add third_party/google-input-tools: Take 2 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@google_input_tools
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/google_input_tools/src/chrome/os/inputview/layouts/util.js
diff --git a/third_party/google_input_tools/src/chrome/os/inputview/layouts/util.js b/third_party/google_input_tools/src/chrome/os/inputview/layouts/util.js
new file mode 100644
index 0000000000000000000000000000000000000000..00ca9441ff9066fd1ef1ebc56327ff32e76cfd18
--- /dev/null
+++ b/third_party/google_input_tools/src/chrome/os/inputview/layouts/util.js
@@ -0,0 +1,221 @@
+// 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.layouts.util');
+goog.require('i18n.input.chrome.inputview.Css');
+goog.require('i18n.input.chrome.inputview.elements.ElementType');
+
+
+
+goog.scope(function() {
+var ElementType = i18n.input.chrome.inputview.elements.ElementType;
+
+
+/**
+ * The id for the key.
+ *
+ * @type {number}
+ * @private
+ */
+i18n.input.chrome.inputview.layouts.util.keyId_ = 0;
+
+
+/**
+ * The prefix of the key id, it's overwritten by layout file.
+ *
+ * @type {string}
+ */
+i18n.input.chrome.inputview.layouts.util.keyIdPrefix = '';
+
+/**
+ * Resets id counter for keys in preparation for processing a new layout.
+ * @param {string} prefix The prefix for the key id.
+ */
+i18n.input.chrome.inputview.layouts.util.setPrefix = function(prefix) {
+ i18n.input.chrome.inputview.layouts.util.keyIdPrefix = prefix;
+ i18n.input.chrome.inputview.layouts.util.keyId_ = 0;
+};
+
+/**
+ * Creates a sequence of key with the same specification.
+ *
+ * @param {!Object} spec The specification.
+ * @param {number} num How many keys.
+ * @return {!Array.<Object>} The keys.
+ */
+i18n.input.chrome.inputview.layouts.util.createKeySequence = function(spec,
+ num) {
+ var sequence = [];
+ for (var i = 0; i < num; i++) {
+ sequence.push(i18n.input.chrome.inputview.layouts.util.createKey(spec));
+ }
+ return sequence;
+};
+
+
+/**
+ * Creates a soft key view.
+ *
+ * @param {!Object} spec The specification.
+ * @param {string=} opt_id The id.
+ * @return {!Object} The soft key view.
+ */
+i18n.input.chrome.inputview.layouts.util.createKey = function(spec, opt_id) {
+ var id = i18n.input.chrome.inputview.layouts.util.keyIdPrefix +
+ i18n.input.chrome.inputview.layouts.util.keyId_++;
+ return i18n.input.chrome.inputview.layouts.util.createElem(
+ ElementType.SOFT_KEY_VIEW, spec, id);
+};
+
+
+/**
+ * Creates a linear layout.
+ *
+ * @param {!Object} spec The specification.
+ * @param {string=} opt_id The id.
+ * @return {!Object} The linear layout.
+ */
+i18n.input.chrome.inputview.layouts.util.createLinearLayout = function(spec,
+ opt_id) {
+ return i18n.input.chrome.inputview.layouts.util.createElem(
+ ElementType.LINEAR_LAYOUT, spec, opt_id, spec['iconCssClass']);
+};
+
+
+/**
+ * Creates an extended layout.
+ *
+ * @param {!Object} spec The specification.
+ * @param {string=} opt_id The id.
+ * @return {!Object} The extended layout.
+ */
+i18n.input.chrome.inputview.layouts.util.createExtendedLayout = function(spec,
+ opt_id) {
+ return i18n.input.chrome.inputview.layouts.util.createElem(
+ ElementType.EXTENDED_LAYOUT, spec, opt_id, spec['iconCssClass']);
+};
+
+
+/**
+ * Creates a handwriting layout.
+ *
+ * @param {!Object} spec The specification.
+ * @param {string=} opt_id The id.
+ * @return {!Object} The handwriting layout.
+ */
+i18n.input.chrome.inputview.layouts.util.createHandwritingLayout =
+ function(spec, opt_id) {
+ return i18n.input.chrome.inputview.layouts.util.createElem(
+ ElementType.HANDWRITING_LAYOUT, spec, opt_id);
+};
+
+
+/**
+ * Creates a vertical layout.
+ *
+ * @param {!Object} spec The specification.
+ * @param {string=} opt_id The id.
+ * @return {!Object} The vertical layout.
+ */
+i18n.input.chrome.inputview.layouts.util.createVerticalLayout = function(spec,
+ opt_id) {
+ return i18n.input.chrome.inputview.layouts.util.createElem(
+ ElementType.VERTICAL_LAYOUT, spec, opt_id);
+};
+
+
+/**
+ * Creates a layout view.
+ *
+ * @param {!Object} spec The specification.
+ * @param {string=} opt_id The id.
+ * @return {!Object} The view.
+ */
+i18n.input.chrome.inputview.layouts.util.createLayoutView = function(spec,
+ opt_id) {
+ return i18n.input.chrome.inputview.layouts.util.createElem(
+ ElementType.LAYOUT_VIEW, spec, opt_id);
+};
+
+
+/**
+ * Creates a candidate view.
+ *
+ * @param {!Object} spec The specification.
+ * @param {string=} opt_id The id.
+ * @return {!Object} The view.
+ */
+i18n.input.chrome.inputview.layouts.util.createCandidateView = function(spec,
+ opt_id) {
+ return i18n.input.chrome.inputview.layouts.util.createElem(
+ ElementType.CANDIDATE_VIEW, spec, opt_id);
+};
+
+
+/**
+ * Creates a canvas view.
+ *
+ * @param {!Object} spec The specification.
+ * @param {string=} opt_id The id.
+ * @return {!Object} The view.
+ */
+i18n.input.chrome.inputview.layouts.util.createCanvasView = function(spec,
+ opt_id) {
+ return i18n.input.chrome.inputview.layouts.util.createElem(
+ ElementType.CANVAS_VIEW, spec, opt_id);
+};
+
+
+/**
+ * Creates the keyboard.
+ *
+ * @param {Object} spec The specification.
+ * @param {string=} opt_id The id.
+ * @return {Object} The keyboard.
+ */
+i18n.input.chrome.inputview.layouts.util.createKeyboard = function(spec,
+ opt_id) {
+ return i18n.input.chrome.inputview.layouts.util.createElem(
+ ElementType.KEYBOARD, spec, opt_id);
+};
+
+
+/**
+ * Creates an element which could be any type, such as soft key view, layout,
+ * etc.
+ *
+ * @param {!ElementType} type The type.
+ * @param {Object} spec The specification.
+ * @param {string=} opt_id The id.
+ * @param {i18n.input.chrome.inputview.Css=} opt_iconCssClass The Css class.
+ * @return {!Object} The element.
+ */
+i18n.input.chrome.inputview.layouts.util.createElem = function(type, spec,
+ opt_id, opt_iconCssClass) {
+ var newSpec = {};
+ for (var key in spec) {
+ newSpec[key] = spec[key];
+ }
+ newSpec['type'] = type;
+ if (opt_id) {
+ newSpec['id'] = opt_id;
+ }
+ if (opt_iconCssClass) {
+ newSpec['iconCssClass'] = opt_iconCssClass;
+ }
+ return {
+ 'spec': newSpec
+ };
+};
+
+}); // goog.scope

Powered by Google App Engine
This is Rietveld 408576698