| // Copyright 2016 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. |
| |
| // Next MinVersion: 5 |
| |
| module arc.mojom; |
| |
| import "screen_rect.mojom"; |
| |
| // Represents the type of text input field currently focused. |
| [Extensible] |
| enum TextInputType { |
| NONE, |
| TEXT, |
| PASSWORD, |
| SEARCH, |
| EMAIL, |
| NUMBER, |
| TELEPHONE, |
| URL, |
| DATE, |
| TIME, |
| DATETIME, |
| }; |
| |
| // Represents the text insertion points in the container screen coordinates. |
| struct CursorRect { |
| int32 left; |
| int32 top; |
| int32 right; |
| int32 bottom; |
| }; |
| |
| // Represents a single segment of text currently composed by IME. |
| struct CompositionSegment { |
| // Start offset of the segment in UTF-16 index. |
| uint32 start_offset; |
| // End offset of the segment in UTF-16 index. |
| uint32 end_offset; |
| // Indicates that this segment should be emphasized. |
| bool emphasized; |
| }; |
| |
| // Next method ID: 4 |
| interface ImeHost { |
| // Notifies Chrome that the text input focus is changed. |
| OnTextInputTypeChanged@0(TextInputType type); |
| |
| // Notifies Chrome that the cursor poisition has changed. |
| OnCursorRectChanged@1(CursorRect rect); |
| |
| // Notifies Chrome that the current composition is canceled. |
| [MinVersion=1] OnCancelComposition@2(); |
| |
| // Show virtual keyboard of Chrome OS if needed. |
| [MinVersion=2] ShowImeIfNeeded@3(); |
| }; |
| |
| // Next method ID: 6 |
| interface ImeInstance { |
| Init@0(ImeHost host_ptr); |
| |
| // Sets composition text and attributes requested by the host IME. |
| SetCompositionText@1(string text, array<CompositionSegment> segments); |
| |
| // Commits the last set composition text and clears the composition. |
| ConfirmCompositionText@2(); |
| |
| // Commits the specified text and clears the composition. |
| InsertText@3(string text); |
| |
| // Informs the virtual keyboard bounds on screen is changing. |
| // |new_bounds| Represents a ChromeOS virtual keyboard bounds in ChromeOS |
| // screen coordinate, physical pixel as a unit. |
| // When all members are zero value, virtual keyboard is being hidden. |
| [MinVersion=3] OnKeyboardBoundsChanging@4(ScreenRect new_bounds); |
| |
| // Deletes current selection plus the specified number of char16 values |
| // before and after selection or caret. |
| [MinVersion=4] ExtendSelectionAndDelete@5(uint64 before, uint64 after); |
| }; |