// Copyright 2015 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. module ui.mojom; // Text input type which is based on blink::WebTextInputType. enum TextInputType { NONE, TEXT, PASSWORD, SEARCH, EMAIL, NUMBER, TELEPHONE, URL, DATE, DATE_TIME, DATE_TIME_LOCAL, MONTH, TIME, WEEK, TEXT_AREA, CONTENT_EDITABLE, DATE_TIME_FIELD, MAX = DATE_TIME_FIELD, }; // Text input flag which is based on blink::WebTextInputFlags. enum TextInputFlag { NONE, AUTOCOMPLETE_ON = 0x001, AUTOCOMPLETE_OFF = 0x002, AUTOCORRECT_ON = 0x004, AUTOCORRECT_OFF = 0x008, SPELLCHECK_ON = 0x010, SPELLCHECK_OFF = 0x020, AUTOCAPITALIZE_NONE = 0x040, AUTOCAPITALIZE_CHARACTERS = 0x080, AUTOCAPITALIZE_WORDS = 0x100, AUTOCAPITALIZE_SENTENCES = 0x200, ALL = 0x3FF, }; // Text input info which is based on blink::WebTextInputInfo. struct TextInputState { // The type of input field. TextInputType type; // The flags of the input field (autocorrect, autocomplete, etc.). int32 flags; // The value of the input field. string? text; // The cursor position of the current selection start, or the caret position // if nothing is selected. int32 selection_start; // The cursor position of the current selection end, or the caret position // if nothing is selected. int32 selection_end; // The start position of the current composition, or -1 if there is none. int32 composition_start; // The end position of the current composition, or -1 if there is none. int32 composition_end; // Whether or not inline composition can be performed for the current input. bool can_compose_inline; };