blob: 4d4cc4af57c4aea18a279518d04982fe1fd59ab8 [file] [log] [blame]
// Copyright (c) 2012 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.
[
{
"namespace": "inputMethodPrivate",
"compiler_options": {
"implemented_in": "chrome/browser/chromeos/extensions/input_method_api.h"
},
"description": "none",
"types": [
{
"id": "MenuItemStyle",
"type": "string",
"description": "The type of menu item. Radio buttons between separators are considered grouped.",
"enum": ["check", "radio", "separator"]
},
{
"id": "MenuItem",
"type": "object",
"description": "A menu item used by an input method to interact with the user from the language menu.",
"properties": {
"id": {"type": "string", "description": "String that will be passed to callbacks referencing this MenuItem."},
"label": {"type": "string", "optional": true, "description": "Text displayed in the menu for this item."},
"style": {
"$ref": "MenuItemStyle",
"optional": true,
"description": "The type of menu item."
},
"visible": {"type": "boolean", "optional": true, "description": "Indicates this item is visible."},
"checked": {"type": "boolean", "optional": true, "description": "Indicates this item should be drawn with a check."},
"enabled": {"type": "boolean", "optional": true, "description": "Indicates this item is enabled."}
}
},
{
"id": "UnderlineStyle",
"type": "string",
"description": "The type of the underline to modify a composition segment.",
"enum": ["underline"]
},
{
"id": "FocusReason",
"type": "string",
"description": "Describes how the text field was focused",
"enum": ["mouse", "touch", "pen", "other"]
},
{
"id": "InputContextType",
"type": "string",
"description": "Type of value this text field edits, (Text, Number, URL, etc)",
"enum": ["text", "search", "tel", "url", "email", "number", "password"]
},
{
"id": "AutoCapitalizeType",
"type": "string",
"description": "The auto-capitalize type of the text field.",
"enum": ["characters", "words", "sentences"]
},
{
"id": "InputContext",
"type": "object",
"description": "Describes an input Context",
"properties": {
"contextID": {"type": "integer", "description": "This is used to specify targets of text field operations. This ID becomes invalid as soon as onBlur is called."},
"type": {"$ref": "InputContextType", "description": "Type of value this text field edits, (Text, Number, URL, etc)"},
"autoCorrect": {"type": "boolean", "description": "Whether the text field wants auto-correct."},
"autoComplete": {"type": "boolean", "description": "Whether the text field wants auto-complete."},
"autoCapitalize": {"$ref": "AutoCapitalizeType", "description": "The auto-capitalize type of the text field."},
"spellCheck": {"type": "boolean", "description": "Whether the text field wants spell-check."},
"shouldDoLearning": {"type": "boolean", "description": "Whether text entered into the text field should be used to improve typing suggestions for the user."},
"focusReason": {"$ref": "FocusReason", "description": "How the text field was focused"},
"hasBeenPassword": {"type": "boolean", "description": "Whether the text field has ever been a password field."}
}
}
],
"functions": [
{
"name": "getInputMethodConfig",
"type": "function",
"description": "Gets configurations for input methods.",
"parameters": [
{
"name": "callback",
"type": "function",
"optional": false,
"description": "Callback which is called with the config object.",
"parameters": [
{
"name": "config",
"type": "object",
"description": "The input method config object.",
"properties": {
"isPhysicalKeyboardAutocorrectEnabled": {"type": "boolean"},
"isImeMenuActivated": {"type": "boolean"}
}
}
]
}
]
}, {
"name": "getInputMethods",
"type": "function",
"description": "Gets all whitelisted input methods.",
"parameters": [
{
"name": "callback",
"type": "function",
"optional": false,
"description": "Callback which is called with the input method objects.",
"parameters": [
{
"name": "inputMethods",
"type": "array",
"description": "Whitelisted input method objects.",
"items": {
"type": "object",
"properties": {
"id": {"type": "string"},
"name": {"type": "string"},
"indicator": {"type": "string"}
}
}
}
]
}
]
}, {
"name": "getCurrentInputMethod",
"type": "function",
"description": "Gets the current input method.",
"parameters": [
{
"name": "callback",
"type": "function",
"optional": false,
"description": "Callback which is called with the current input method.",
"parameters": [
{
"name": "inputMethodId",
"type": "string",
"description": "Current input method."
}
]
}
]
}, {
"name": "setCurrentInputMethod",
"type": "function",
"description": "Sets the current input method.",
"parameters": [
{
"name": "inputMethodId",
"type": "string",
"optional": false,
"description": "The input method ID to be set as current input method."
},
{
"name": "callback",
"type": "function",
"optional": true,
"description": "Callback which is called once the current input method is set. If unsuccessful $(ref:runtime.lastError) is set.",
"parameters": []
}
]
}, {
"name": "fetchAllDictionaryWords",
"type": "function",
"description": "Fetches a list of all the words currently in the dictionary.",
"parameters": [
{
"name": "callback",
"type": "function",
"optional": false,
"description": "Callback which is called once the list of dictionary words are ready.",
"parameters": [
{
"name": "words",
"type": "array",
"description": "List of dictionary words.",
"items": {
"type": "string"
}
}
]
}
]
}, {
"name": "addWordToDictionary",
"type": "function",
"description": "Adds a single word to be stored in the dictionary.",
"parameters": [
{
"name": "word",
"type": "string",
"optional": false,
"description": "A new word to add to the dictionary."
},
{
"name": "callback",
"type": "function",
"optional": true,
"description": "Callback which is called once the word is added. If unsuccessful $(ref:runtime.lastError) is set.",
"parameters": []
}
]
}, {
"name": "getEncryptSyncEnabled",
"type": "function",
"description": "Gets whether the encrypt sync is enabled.",
"parameters": [
{
"name": "callback",
"type": "function",
"optional": true,
"description": "Callback which is called to provide the result.",
"parameters": [
{
"name": "enabled",
"type": "boolean",
"optional": false,
"description": "The result of whether enabled."
}
]
}
]
}, {
"name": "setXkbLayout",
"type": "function",
"description": "Sets the XKB layout for the given input method.",
"parameters": [
{
"name": "xkb_name",
"type": "string",
"description": "The XKB layout name."
},
{
"name": "callback",
"type": "function",
"optional": true,
"description": "Callback which is called when the layout is set.",
"parameters": []
}
]
}, {
"name": "notifyImeMenuItemActivated",
"type": "function",
"description": "Fires the input.ime.onMenuItemActivated event.",
"parameters": [
{
"name": "engineID",
"type": "string",
"description": "ID of the engine to use."
},
{
"name": "name",
"type": "string",
"description": "Name of the MenuItem which was activated"
}
]
}, {
"name": "showInputView",
"type": "function",
"description": "Shows the input view window. If the input view window is already shown, this function will do nothing.",
"parameters": [
{
"type": "function",
"name": "callback",
"optional": true,
"description": "Called when the operation completes.",
"parameters": []
}
]
}, {
"name": "openOptionsPage",
"type": "function",
"description": "Opens the options page for the input method extension. If the input method does not have options, this function will do nothing.",
"parameters": [
{
"name": "inputMethodId",
"type": "string",
"description": "ID of the input method to open options for."
}
]
}, {
"name": "getCompositionBounds",
"type": "function",
"description": "Gets the composition bounds",
"parameters": [
{
"type": "function",
"name": "callback",
"description": "Callback which is called to provide the result",
"parameters": [
{
"name": "boundsList",
"type": "array",
"description": "List of bounds information.",
"items": {
"type": "object",
"properties": {
"x": {"type": "integer"},
"y": {"type": "integer"},
"w": {"type": "integer"},
"h": {"type": "integer"}
}
}
}
]
}
]
}, {
"name": "getSurroundingText",
"type": "function",
"description": "Gets the surrounding text of the current selection",
"parameters": [
{
"name": "beforeLength",
"type": "integer",
"description": "The number of characters before the current selection."
},
{
"name": "afterLength",
"type": "integer",
"description": "The number of characters after the current selection."
},
{
"type": "function",
"name": "callback",
"description": "Callback which is called to provide the result",
"parameters": [
{
"name": "surroundingInfo",
"type": "object",
"description": "The surrouding text info.",
"properties": {
"before": {"type": "string"},
"selected": {"type": "string"},
"after": {"type": "string"}
}
}
]
}
]
}, {
"name": "getSetting",
"type": "function",
"description": "Gets the current value of a setting for a particular input method",
"parameters": [
{
"name": "engineID",
"type": "string",
"description": "The ID of the engine (e.g. 'zh-t-i0-pinyin', 'xkb:us::eng')"
},
{
"name": "key",
"type": "string",
"description": "The setting to get"
},
{
"type": "function",
"name": "callback",
"description": "Callback to receive the setting",
"parameters": [
{
"name": "setting",
"type": "any",
"optional": true,
"description": "The value for the requested setting, or null if there's no value"
}
]
}
]
}, {
"name": "setSetting",
"type": "function",
"description": "Sets the value of a setting for a particular input method",
"parameters": [
{
"name": "engineID",
"type": "string",
"description": "The ID of the engine (e.g. 'zh-t-i0-pinyin', 'xkb:us::eng')"
},
{
"name": "key",
"type": "string",
"description": "The setting to set"
},
{
"name": "value",
"type": "any",
"description": "The new value of the setting"
},
{
"type": "function",
"name": "callback",
"optional": true,
"description": "Callback to notify that the new value has been set",
"parameters": []
}
]
}, {
"name": "setCompositionRange",
"type": "function",
"description": "Set the composition range. If this extension does not own the active IME, this fails.",
"parameters": [
{
"name": "parameters",
"type": "object",
"properties": {
"contextID": {
"description": "ID of the context where the composition text will be set",
"type": "integer"
},
"selectionBefore": {
"description": "How much before the current selection to set as composition.",
"type": "integer"
},
"selectionAfter": {
"description": "How much after the current selection to set as composition.",
"type": "integer"
},
"segments": {
"description": "List of segments and their associated types.",
"type": "array",
"optional": true,
"items": {
"type": "object",
"properties": {
"start": {
"description": "Index of the character to start this segment at",
"type": "integer"
},
"end": {
"description": "Index of the character to end this segment after.",
"type": "integer"
},
"style": {
"$ref": "UnderlineStyle",
"description": "The type of the underline to modify this segment."
}
}
}
}
}
},
{
"type": "function",
"name": "callback",
"optional": true,
"description": "Called when the operation completes with a boolean indicating if the text was accepted or not. On failure, chrome.runtime.lastError is set.",
"parameters": [
{
"name": "success",
"type": "boolean"
}
]
}
]
}
],
"events": [
{
"name": "onChanged",
"type": "function",
"description": "Fired when the input method is changed.",
"parameters": [
{
"name": "newInputMethodId",
"type": "string",
"description": "New input method which is being used."
}
]
}, {
"name": "onCompositionBoundsChanged",
"type": "function",
"description": "Fired when the composition bounds or cursor bounds are changed.",
"parameters": [
{
"name": "firstBounds",
"type": "object",
"description": "The bounds information for the first character in composition.",
"properties": {
"x": {"type": "integer"},
"y": {"type": "integer"},
"w": {"type": "integer"},
"h": {"type": "integer"}
}
}, {
"name": "boundsList",
"type": "array",
"description": "List of bounds information.",
"items": {
"type": "object",
"properties": {
"x": {"type": "integer"},
"y": {"type": "integer"},
"w": {"type": "integer"},
"h": {"type": "integer"}
}
}
}
]
}, {
"name": "onDictionaryLoaded",
"type": "function",
"description": "Fired when the custom spelling dictionary is loaded.",
"parameters": []
}, {
"name": "onDictionaryChanged",
"type": "function",
"description": "Fired when words are added or removed from the custom spelling dictionary.",
"parameters": [
{
"name": "added",
"type": "array",
"description": "List of added words.",
"items": {
"type": "string"
}
}, {
"name": "removed",
"type": "array",
"description": "List of removed words.",
"items": {
"type": "string"
}
}
]
}, {
"name": "onImeMenuActivationChanged",
"type": "function",
"description": "Fired when the IME menu is activated or deactivated.",
"parameters": [
{
"name": "activation",
"type": "boolean",
"description": "Whether the IME menu is currently active."
}
]
}, {
"name": "onImeMenuListChanged",
"type": "function",
"description": "Fired when the input method or the list of active input method IDs is changed.",
"parameters": []
}, {
"name": "onImeMenuItemsChanged",
"type": "function",
"description": "Fired when the input.ime.setMenuItems or input.ime.updateMenuItems API is called.",
"parameters": [
{
"name": "engineID",
"type": "string",
"description": "ID of the engine to use"
},
{
"name": "items",
"type": "array",
"items": {
"$ref": "MenuItem"
},
"description": "MenuItems to add or update."
}
]
}, {
"name": "onFocus",
"type": "function",
"description": "This event is sent when focus enters a text box. It is sent to all extensions that are listening to this event, and enabled by the user.",
"parameters": [
{
"$ref": "InputContext",
"name": "context",
"description": "Describes the text field that has acquired focus."
}
]
}, {
"name": "onSettingsChanged",
"type": "function",
"description": "This event is sent when the settings for any input method changed. It is sent to all extensions that are listening to this event, and enabled by the user.",
"parameters": [
{
"name": "engineID",
"type": "string",
"description": "ID of the engine that changed"
},
{
"name": "key",
"type": "string",
"description": "The setting that changed"
},
{
"name": "value",
"type": "any",
"description": "The new value of the setting"
}
]
}, {
"name": "onScreenProjectionChanged",
"type": "function",
"description": "This event is sent when the screen is being mirrored or the desktop is being cast.",
"parameters": [
{
"name": "isProjected",
"type": "boolean",
"description": "Whether the screen is projected."
}
]
}
]
}
]