blob: a816929746d519a1608a53c58b8a56b4ef0f4dba [file] [log] [blame]
// 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 mojo;
// 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,
LAST = TEXT_AREA,
};
// 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;
};