Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(516)

Side by Side Diff: services/ui/public/interfaces/ime.mojom

Issue 2539453002: IME for Mus: Add ui.mojom.CompositionText and its struct traits. (Closed)
Patch Set: Addressed feedback. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « services/ui/public/interfaces/BUILD.gn ('k') | services/ui/public/interfaces/ime/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 module ui.mojom;
6
7 import "ui/events/mojo/event.mojom";
8 import "ui/gfx/geometry/mojo/geometry.mojom";
9
10 struct CompositionEvent {
11 CompositionEventType type;
12
13 // Used when |type| is INSERT_CHAR. See the comments for
14 // ui::TextInputClient::InsertChar() for more information.
15 Event? key_event;
16
17 // TODO(moshayedi): crbug.com/631524. Add fields required for other types of
18 // composition event.
19 };
20
21 enum CompositionEventType {
22 UPDATE,
23 CONFIRM,
24 CLEAR,
25 INSERT_CHAR,
26 INSERT_TEXT
27 };
28
29 // See comments for ui::TextInputType for more details.
30 enum TextInputType {
31 NONE,
32 TEXT,
33 PASSWORD,
34 SEARCH,
35 EMAIL,
36 NUMBER,
37 TELEPHONE,
38 URL,
39 DATE,
40 TIME,
41 DATETIME,
42 };
43
44 // See comments for ui::TextInputMode for more details.
45 enum TextInputMode {
46 DEFAULT,
47 VERBATIM,
48 LATIN,
49 LATIN_NAME,
50 LATIN_PROSE,
51 FULL_WIDTH_LATIN,
52 KANA,
53 KATAKANA,
54 NUMERIC,
55 TEL,
56 EMAIL,
57 URL,
58 };
59
60 // A service which provides the IMEDriver interface is responsible for doing
61 // the composition logic. After starting a session, it receives events from
62 // the client via the InputMethod interface, and sends composition events to
63 // the client via the TextInputClient.
64 interface IMEDriver {
65 // session_id is unique and generated by Mus.
66 StartSession(int32 session_id, TextInputClient client,
67 InputMethod& input_method);
68 CancelSession(int32 session_id);
69 };
70
71 // Clients use IME using the IMEServer interface which is provided by Mus. Mus
72 // does minimal processing and mostly just acts as lightweight proxy between
73 // the client app and the registered IME driver.
74 interface IMEServer {
75 StartSession(TextInputClient client,
76 InputMethod& input_method);
77 };
78
79 // An IME driver register should register itself to Mus using the IMERegistrar
80 // interface.
81 interface IMERegistrar {
82 RegisterDriver(IMEDriver driver);
83 };
84
85 // A client sends updates to the IME driver using the InputMethod interface.
86 // This interface is provided by IME drivers, and also by Mus as a lightweight
87 // proxy between IME drivers and clients.
88 interface InputMethod {
89 OnTextInputModeChanged(TextInputMode text_input_mode);
90 OnTextInputTypeChanged(TextInputType text_input_type);
91
92 // Client sends |caret_bounds| in focused window coordinates,
93 // Mus translates it to global coordinates and sends it to IME app.
94 OnCaretBoundsChanged(gfx.mojom.Rect caret_bounds);
95
96 // Called to process a key event. The callback function will be called to
97 // notify the client if the event was handled or not. A handled event may
98 // generate zero or more composition events which will be sent to the client
99 // by calling TextInputClient::OnCompositionEvent().
100 ProcessKeyEvent(ui.mojom.Event key_event) => (bool handled);
101
102 CancelComposition();
103 };
104
105 // IME drivers send updates to clients using the TextInputClient interface.
106 interface TextInputClient {
107 // Corresponds to "input method result" functions of ui::TextInputClient.
108 // See comments for InputMethod::ProcessKeyEvent() for when this is called.
109 OnCompositionEvent(CompositionEvent event);
110
111 // TODO(moshayedi): Add functions corresponding to ui::TextInputClient for:
112 // - Input text confirmation
113 // - Document content operations
114 // - Miscellaneous functions
115 // crbug.com/631527.
116 };
OLDNEW
« no previous file with comments | « services/ui/public/interfaces/BUILD.gn ('k') | services/ui/public/interfaces/ime/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698