// Copyright 2017 The Fuchsia Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. library fuchsia.ui.input; enum KeyboardType { TEXT = 0; NUMBER = 1; PHONE = 2; DATETIME = 3; }; enum InputMethodAction { UNSPECIFIED = 0; NONE = 1; GO = 2; SEARCH = 3; SEND = 4; NEXT = 5; DONE = 6; PREVIOUS = 7; }; // The current text, selection, and composing state for editing a run of text. struct TextInputState { // Current state revision to avoid race conditions. uint32 revision; // The current text being edited. string text; // The range of text that is currently selected. TextSelection selection; // The range of text that is still being composed. TextRange composing; }; // A interface for interacting with a text input control. interface InputMethodEditor { 1: SetKeyboardType(KeyboardType keyboard_type); 2: SetState(TextInputState state); 3: InjectInput(InputEvent event); // TODO(TEXT-19): remove these in a later change, after PlatformView has been // switched over to open/close on the input_connection_ instead. 4: Show(); 5: Hide(); }; // An interface to receive information from |TextInputService|. interface InputMethodEditorClient { 1: DidUpdateState(TextInputState state, InputEvent? event); 2: OnAction(InputMethodAction action); };