Index: chrome/browser/resources/keyboard/main.js |
diff --git a/chrome/browser/resources/keyboard/main.js b/chrome/browser/resources/keyboard/main.js |
deleted file mode 100644 |
index 8b7d54d8f60192673fdb9c28ef4d05bcd4de393d..0000000000000000000000000000000000000000 |
--- a/chrome/browser/resources/keyboard/main.js |
+++ /dev/null |
@@ -1,252 +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 simple virtual keyboard implementation. |
- */ |
- |
-/** |
- * The ratio of the row height to the font size. |
- * @type {number} |
- */ |
-const kFontSizeRatio = 3.5; |
- |
-/** |
- * Return the id attribute of the keyboard element for the given layout. |
- * @param {string} layout The keyboard layout. |
- * @return {string} The id attribute of the keyboard element. |
- */ |
-function getKeyboardId(layout) { |
- return 'keyboard_' + layout; |
-} |
- |
-/** |
- * Return the aspect ratio of the current keyboard. |
- * @param {string} layout The keyboard layout. |
- * @return {number} The aspect ratio of the current keyboard. |
- */ |
-function getKeyboardAspect() { |
- return KEYBOARDS[currentKeyboardLayout]['aspect']; |
-} |
- |
-/** |
- * Calculate the height of the keyboard based on the size of the page. |
- * @return {number} The height of the keyboard in pixels. |
- */ |
-function getKeyboardHeight() { |
- var x = window.innerWidth; |
- var y = window.innerHeight - ((imeui && imeui.visible) ? IME_HEIGHT : 0); |
- return (x > getKeyboardAspect() * y) ? |
- y : Math.floor(x / getKeyboardAspect()); |
-} |
- |
-/** |
- * Create a DOM of the keyboard rows for the given keyboard layout. |
- * Do nothing if the DOM is already created. |
- * @param {string} layout The keyboard layout for which rows are created. |
- * @param {Element} element The DOM Element to which rows are appended. |
- * @param {boolean} autoPadding True if padding needs to be added to both side |
- * of the rows that have less keys. |
- * @return {void} |
- */ |
-function initRows(layout, element, autoPadding) { |
- var keyboard = KEYBOARDS[layout]; |
- if ('rows' in keyboard) { |
- return; |
- } |
- var def = keyboard['definition']; |
- var rows = []; |
- for (var i = 0; i < def.length; ++i) { |
- rows.push(new Row(i, def[i])); |
- } |
- keyboard['rows'] = rows; |
- |
- var maxRowLength = -1; |
- for (var i = 0; i < rows.length; ++i) { |
- if (rows[i].length > maxRowLength) { |
- maxRowLength = rows[i].length; |
- } |
- } |
- |
- // A div element which holds rows for the layout. |
- var rowsDiv = document.createElement('div'); |
- rowsDiv.className = 'rows'; |
- for (var i = 0; i < rows.length; ++i) { |
- var rowDiv = rows[i].makeDOM(); |
- if (autoPadding && rows[i].length < maxRowLength) { |
- var padding = 50 * (maxRowLength - rows[i].length) / maxRowLength; |
- rowDiv.style.paddingLeft = padding + '%'; |
- rowDiv.style.paddingRight = padding + '%'; |
- } |
- rowsDiv.appendChild(rowDiv); |
- rows[i].showMode(currentMode); |
- } |
- keyboard['rowsDiv'] = rowsDiv; |
- element.appendChild(rowsDiv); |
-} |
- |
-/** |
- * Create a DOM of the handwriting canvas for the given keyboard layout. |
- * Do nothing if the DOM is already created or the layout doesn't have canvas. |
- * @param {string} layout The keyboard layout for which canvas is created. |
- * @param {Element} The DOM Element to which canvas is appended. |
- * @return {void} |
- */ |
-function initHandwritingCanvas(layout, element) { |
- var keyboard = KEYBOARDS[layout]; |
- if (!('canvas' in keyboard) || keyboard['canvas']) { |
- return; |
- } |
- var canvas = new HandwritingCanvas(); |
- canvas.className = 'handwritingcanvas'; |
- var border = 1; |
- var marginTop = 5; |
- var canvasHeight = getKeyboardHeight() - 2 * border - marginTop; |
- canvas.resize(canvasHeight); |
- keyboard['canvas'] = canvas; |
- element.appendChild(canvas); |
-} |
- |
-/** |
- * Create a DOM of the keyboard for the given keyboard layout. |
- * Do nothing if the DOM is already created. |
- * @param {string} layout The keyboard layout for which keyboard is created. |
- * @param {Element} The DOM Element to which keyboard is appended. |
- * @return {void} |
- */ |
-function initKeyboard(layout, element) { |
- var keyboard = KEYBOARDS[layout]; |
- if (!keyboard || keyboard['keyboardDiv']) { |
- return; |
- } |
- var keyboardDiv = document.createElement('div'); |
- keyboardDiv.id = getKeyboardId(layout); |
- keyboardDiv.className = 'keyboard'; |
- initRows(layout, keyboardDiv); |
- initHandwritingCanvas(layout, keyboardDiv); |
- keyboard['keyboardDiv'] = keyboardDiv; |
- window.onresize(); |
- element.appendChild(keyboardDiv); |
-} |
- |
-/** |
- * Create a DOM of the popup keyboard. |
- * @param {Element} The DOM Element to which the popup keyboard is appended. |
- * @return {void} |
- */ |
-function initPopupKeyboard(element) { |
- var popupDiv = document.createElement('div'); |
- popupDiv.id = 'popup'; |
- popupDiv.className = 'keyboard popup'; |
- popupDiv.style.visibility = 'hidden'; |
- element.appendChild(popupDiv); |
- element.addEventListener('mouseup', function(evt) { |
- hidePopupKeyboard(evt); |
- }); |
-} |
- |
-/** |
- * Resize the keyboard according to the new window size. |
- * @return {void} |
- */ |
-window.onresize = function() { |
- var keyboardDiv = KEYBOARDS[currentKeyboardLayout]['keyboardDiv']; |
- var height = getKeyboardHeight(); |
- keyboardDiv.style.height = height + 'px'; |
- var mainDiv = document.getElementById('main'); |
- mainDiv.style.width = Math.floor(getKeyboardAspect() * height) + 'px'; |
- var rowsLength = KEYBOARDS[currentKeyboardLayout]['rows'].length; |
- keyboardDiv.style.fontSize = (height / kFontSizeRatio / rowsLength) + 'px'; |
- updateIme(); |
-} |
- |
-/** |
- * Init the keyboard. |
- * @return {void} |
- */ |
-window.onload = function() { |
- var body = document.getElementById('b'); |
- |
- // Catch all unhandled touch events and prevent default, to prevent the |
- // keyboard from responding to gestures like double tap. |
- function disableGestures(evt) { |
- evt.preventDefault(); |
- } |
- body.addEventListener('touchstart', disableGestures); |
- body.addEventListener('touchmove', disableGestures); |
- body.addEventListener('touchend', disableGestures); |
- |
- var mainDiv = document.createElement('div'); |
- mainDiv.className = 'main'; |
- mainDiv.id = 'main'; |
- body.appendChild(mainDiv); |
- |
- initIme(mainDiv); |
- initKeyboard(currentKeyboardLayout, mainDiv); |
- initPopupKeyboard(body); |
- |
- window.onhashchange(); |
- |
- chrome.experimental.input.virtualKeyboard.onTextInputTypeChanged.addListener( |
- function(type) { |
- var newMode = SHIFT_MODE; |
- switch(type) { |
- case "text": |
- newMode = SHIFT_MODE; |
- break; |
- case "email": |
- case "password": |
- case "search": |
- case "url": |
- newMode = KEY_MODE; |
- break; |
- case "number": |
- case "tel": |
- newMode = NUMBER_MODE; |
- break; |
- default: |
- newMode = KEY_MODE; |
- break; |
- } |
- setMode(newMode); |
- }); |
-} |
-// TODO(bryeung): would be nice to leave less gutter (without causing |
-// rendering issues with floated divs wrapping at some sizes). |
- |
-/** |
- * Switch the keyboard layout based on the current URL hash. |
- * @return {void} |
- */ |
-window.onhashchange = function() { |
- var old_layout = currentKeyboardLayout; |
- var new_layout = location.hash.replace(/^#/, ""); |
- if (old_layout == new_layout) { |
- return; |
- } |
- |
- if (KEYBOARDS[new_layout] === undefined) { |
- // Unsupported layout. |
- new_layout = "us"; |
- } |
- currentKeyboardLayout = new_layout; |
- |
- var mainDiv = document.getElementById('main'); |
- initKeyboard(currentKeyboardLayout, mainDiv); |
- |
- [new_layout, old_layout].forEach(function(layout) { |
- var visible = (layout == new_layout); |
- var keyboardDiv = KEYBOARDS[layout]['keyboardDiv']; |
- keyboardDiv.className = visible ? 'keyboard' : 'nodisplay'; |
- var canvas = KEYBOARDS[layout]['canvas']; |
- if (canvas !== undefined) { |
- if (!visible) { |
- canvas.clear(); |
- } |
- } |
- if (visible) { |
- window.onresize(); |
- } |
- }); |
-} |