Index: chrome/browser/resources/keyboard/layout_handwriting_vk.js |
diff --git a/chrome/browser/resources/keyboard/layout_handwriting_vk.js b/chrome/browser/resources/keyboard/layout_handwriting_vk.js |
deleted file mode 100644 |
index 59778139259ed9c9d3c7399eea991a9d9c995fea..0000000000000000000000000000000000000000 |
--- a/chrome/browser/resources/keyboard/layout_handwriting_vk.js |
+++ /dev/null |
@@ -1,233 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-/** |
- * @fileoverview A handwriting virtual keyboard implementation. |
- */ |
- |
-/** |
- * Const variables |
- */ |
-const HANDWRITING_CANVAS_LINE_COLOR = '#ffffff'; |
-const HANDWRITING_CANVAS_LINE_WIDTH = 5; |
-const HANDWRITING_CANVAS_MOUSEMOVE_THRESHOLD_SQ = 15 * 15; // 15px. |
-const HANDWRITING_CANVAS_ASPECT = 1.0; |
-const HANDWRITING_CANVAS_ELEMENT_ID = 'handwriting-canvas'; |
- |
-/** |
- * The key that clears the canvas for handwriting. |
- * @param {number} aspect The aspect ratio of the key. |
- * @constructor |
- * @extends {BaseKey} |
- */ |
-function ClearHandwritingKey(content) { |
- this.modeElements_ = {} |
- this.cellType_ = 'nc'; |
- this.content_ = content; |
-} |
- |
-ClearHandwritingKey.prototype = { |
- __proto__: BaseKey.prototype, |
- |
- /** @inheritDoc */ |
- makeDOM: function(mode, height) { |
- this.modeElements_[mode] = document.createElement('div'); |
- this.modeElements_[mode].className = 'key handwriting-clear'; |
- addContent(this.modeElements_[mode], this.content_); |
- |
- this.modeElements_[mode].onclick = function() { |
- var canvas = document.getElementById(HANDWRITING_CANVAS_ELEMENT_ID); |
- canvas.clear(); |
- }; |
- |
- return this.modeElements_[mode]; |
- } |
-}; |
- |
-/** |
- * The canvas element for handwriting. |
- * @param {Object=} opt_propertyBag Optional properties. |
- * @constructor |
- * @extends {HTMLCanvasElement} |
- */ |
-var HandwritingCanvas = cr.ui.define('canvas'); |
- |
-HandwritingCanvas.prototype = { |
- __proto__: HTMLCanvasElement.prototype, |
- |
- /** |
- * Creates the DOM element for the canvas. |
- * @return {Element} The DOM Element. |
- */ |
- decorate: function() { |
- this.id = HANDWRITING_CANVAS_ELEMENT_ID; |
- this.stroke_ = []; |
- |
- var canvas = this; |
- var context = canvas.getContext('2d'); |
- |
- canvas.className = 'handwriting'; |
- canvas.onmousedown = function(e) { |
- var coords = canvas.getEventCoordinates(e); |
- canvas.stroke_ = []; |
- context.strokeStyle = HANDWRITING_CANVAS_LINE_COLOR; |
- context.lineWidth = HANDWRITING_CANVAS_LINE_WIDTH; |
- context.beginPath(); |
- context.moveTo(coords.x, coords.y); |
- canvas.addStroke(coords.x, coords.y); |
- }; |
- |
- canvas.onmousemove = function(e) { |
- var coords = canvas.getEventCoordinates(e); |
- if (canvas.stroke_.length == 0) { |
- return; |
- } |
- context.lineTo(coords.x, coords.y); |
- context.stroke(); |
- canvas.addStroke(coords.x, coords.y); |
- }; |
- canvas.ontouchmove = canvas.onmousemove; |
- |
- canvas.onmouseup = function(e) { |
- var coords = canvas.getEventCoordinates(e); |
- if (canvas.stroke_.length > 0) { |
- context.lineTo(coords.x, coords.y); |
- context.stroke(); |
- canvas.addStroke(coords.x, coords.y); |
- if (chrome.experimental) { |
- chrome.experimental.input.virtualKeyboard.sendHandwritingStroke( |
- canvas.stroke_); |
- } |
- canvas.stroke_ = []; |
- } |
- }; |
- canvas.onmouseout = canvas.onmouseup; |
- |
- canvas.ontouchstart = canvas.onmousedown; |
- canvas.ontouchenter = canvas.onmousedown; |
- canvas.ontouchend = canvas.onmouseup; |
- canvas.ontouchleave = canvas.onmouseup; |
- canvas.ontouchcancel = canvas.onmouseup; |
- |
- // Clear the canvas when an IME hides the lookup table. |
- if (chrome.experimental && chrome.experimental.input.ui) { |
- chrome.experimental.input.ui.onUpdateLookupTable.addListener( |
- function(table) { |
- if (!table.visible) { |
- canvas.clear(); |
- } |
- }); |
- } |
- return canvas; |
- }, |
- |
- /** |
- * Updates this.stroke_ unless the posision clicked/touched is too close to |
- * the previous one. |
- * @param {number} offsetX x-coordinate of the mouse/touch event. |
- * @param {number} offsetY y-coordinate of the mouse/touch event. |
- * @return {void} |
- */ |
- addStroke: function(offsetX, offsetY) { |
- var x = offsetX / this.width; |
- var y = offsetY / this.height; |
- |
- if (this.stroke_.length == 0) { |
- this.stroke_.push({ x: x, y: y }); |
- } else { |
- var delta_x = |
- (this.stroke_[this.stroke_.length - 1].x - x) * this.width; |
- var delta_y = |
- (this.stroke_[this.stroke_.length - 1].y - y) * this.height; |
- if (delta_x * delta_x + delta_y * delta_y >= |
- HANDWRITING_CANVAS_MOUSEMOVE_THRESHOLD_SQ) { |
- // Do not update the array if the distance is less than threshold not |
- // to send excessive amount of data to an handwriting IME. |
- this.stroke_.push({ x: x, y: y }); |
- } |
- } |
- }, |
- |
- /** |
- * Gets xy-coordinates of a mouse/touch event. |
- * @param {Object} event An event object for a mouse/touch event. |
- * @return {Object} |
- */ |
- getEventCoordinates: function(event) { |
- if (event.changedTouches && event.changedTouches[0]) { |
- var touch = event.changedTouches[0]; |
- return { x: touch.clientX - event.currentTarget.offsetLeft, |
- y: touch.clientY - event.currentTarget.offsetTop }; |
- } else if (event.offsetX) { |
- return { x: event.offsetX, y: event.offsetY }; |
- } |
- // Unexpected event. Not reached. |
- return { x: 0, y: 0 }; |
- }, |
- |
- /** |
- * Resizes the canvas element. |
- * @param {number} height The height of the canvas. |
- * @return {void} |
- */ |
- resize: function(height) { |
- var width = height * HANDWRITING_CANVAS_ASPECT; |
- this.style.height = height + 'px'; |
- this.style.width = width + 'px'; |
- this.height = height; |
- this.width = width; |
- }, |
- |
- /** |
- * Clears the canvas. |
- * @return {void} |
- */ |
- clear: function() { |
- var context = this.getContext('2d'); |
- context.clearRect(0, 0, this.width, this.height); |
- if (chrome.experimental) { |
- chrome.experimental.input.virtualKeyboard.cancelHandwritingStrokes(); |
- } |
- }, |
- |
- /** |
- * Set the visibility of the canvas. |
- * @param {boolean} visible True if the canvas should be visible. |
- * @return {void} |
- */ |
- set visible(visible) { |
- this.hidden = !visible; |
- } |
-}; |
- |
-/** |
- * All keys for the rows of the handwriting keyboard. |
- * NOTE: every row below should have an aspect of 5. |
- * @type {Array.<Array.<BaseKey>>} |
- */ |
-var KEYS_HANDWRITING_VK = [ |
- [ |
- new ClearHandwritingKey('CLEAR') |
- ], |
- [ |
- new SvgKey('handwriting-return', 'Enter') |
- ], |
- [ |
- new SpecialKey('handwriting-space', 'SPACE', 'Spacebar'), |
- new SvgKey('handwriting-backspace', 'Backspace', true /* repeat */) |
- ], |
- [ |
- new SvgKey('handwriting-mic', ''), |
- new HideKeyboardKey() |
- ] |
-]; |
- |
-// Add the layout to KEYBOARDS, which is defined in common.js |
-KEYBOARDS['handwriting-vk'] = { |
- 'definition': KEYS_HANDWRITING_VK, |
- 'aspect': 2.1, |
- // TODO(yusukes): Stop special-casing canvas when mazda's i18n keyboard |
- // code is ready. |
- 'canvas': null |
-}; |