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

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

Issue 2626983003: IME for Mus: Send TextInputClient information to IMEDriver. (Closed)
Patch Set: fix mojo dependencies. Created 3 years, 11 months 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/ime/BUILD.gn ('k') | ui/aura/mus/input_method_mus.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 module ui.mojom; 5 module ui.mojom;
6 6
7 import "mojo/common/text_direction.mojom";
7 import "ui/events/mojo/event.mojom"; 8 import "ui/events/mojo/event.mojom";
8 import "ui/gfx/geometry/mojo/geometry.mojom"; 9 import "ui/gfx/geometry/mojo/geometry.mojom";
9 import "ui/gfx/range/mojo/range.mojom"; 10 import "ui/gfx/range/mojo/range.mojom";
10 11
11 // Represents an underlined segment of text currently composed by IME. 12 // Represents an underlined segment of text currently composed by IME.
12 // Corresponds to ui::CompositionUnderline. 13 // Corresponds to ui::CompositionUnderline.
13 struct CompositionUnderline { 14 struct CompositionUnderline {
14 uint32 start_offset; 15 uint32 start_offset;
15 uint32 end_offset; 16 uint32 end_offset;
16 bool thick; 17 bool thick;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 FULL_WIDTH_LATIN, 58 FULL_WIDTH_LATIN,
58 KANA, 59 KANA,
59 KANA_NAME, 60 KANA_NAME,
60 KATAKANA, 61 KATAKANA,
61 NUMERIC, 62 NUMERIC,
62 TEL, 63 TEL,
63 EMAIL, 64 EMAIL,
64 URL, 65 URL,
65 }; 66 };
66 67
68 // Parameters needed to start an IME session.
69 struct StartSessionDetails {
70 TextInputClient client;
71 InputMethod& input_method_request;
72
73 // Initial details about |client| required by IMEDriver.
74 TextInputType text_input_type;
75 TextInputMode text_input_mode;
76 mojo.common.mojom.TextDirection text_direction;
77 int32 text_input_flags;
78 gfx.mojom.Rect caret_bounds;
79 };
80
67 // A service which provides the IMEDriver interface is responsible for doing 81 // A service which provides the IMEDriver interface is responsible for doing
68 // the composition logic. After starting a session, it receives events from 82 // the composition logic. After starting a session, it receives events from
69 // the client via the InputMethod interface, and sends composition events to 83 // the client via the InputMethod interface, and sends composition events to
70 // the client via the TextInputClient. 84 // the client via the TextInputClient.
71 interface IMEDriver { 85 interface IMEDriver {
72 // session_id is unique and generated by Mus. 86 // session_id is unique and generated by Mus.
73 StartSession(int32 session_id, TextInputClient client, 87 StartSession(int32 session_id, StartSessionDetails details);
74 InputMethod& input_method);
75 CancelSession(int32 session_id); 88 CancelSession(int32 session_id);
76 }; 89 };
77 90
78 // Clients use IME using the IMEServer interface which is provided by Mus. Mus 91 // Clients use IME using the IMEServer interface which is provided by Mus. Mus
79 // does minimal processing and mostly just acts as lightweight proxy between 92 // does minimal processing and mostly just acts as lightweight proxy between
80 // the client app and the registered IME driver. 93 // the client app and the registered IME driver.
81 interface IMEServer { 94 interface IMEServer {
82 StartSession(TextInputClient client, 95 StartSession(StartSessionDetails details);
83 InputMethod& input_method);
84 }; 96 };
85 97
86 // An IME driver register should register itself to Mus using the IMERegistrar 98 // An IME driver register should register itself to Mus using the IMERegistrar
87 // interface. 99 // interface.
88 interface IMERegistrar { 100 interface IMERegistrar {
89 RegisterDriver(IMEDriver driver); 101 RegisterDriver(IMEDriver driver);
90 }; 102 };
91 103
92 // A client sends updates to the IME driver using the InputMethod interface. 104 // A client sends updates to the IME driver using the InputMethod interface.
93 // This interface is provided by IME drivers, and also by Mus as a lightweight 105 // This interface is provided by IME drivers, and also by Mus as a lightweight
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 // the character is not processed. See ui::TextInputClient::InsertChar() 145 // the character is not processed. See ui::TextInputClient::InsertChar()
134 // for more details. 146 // for more details.
135 InsertChar(ui.mojom.Event event); 147 InsertChar(ui.mojom.Event event);
136 148
137 // TODO(moshayedi): Add functions corresponding to ui::TextInputClient for: 149 // TODO(moshayedi): Add functions corresponding to ui::TextInputClient for:
138 // - Input context information 150 // - Input context information
139 // - Document content operations 151 // - Document content operations
140 // - Miscellaneous functions 152 // - Miscellaneous functions
141 // crbug.com/631527. 153 // crbug.com/631527.
142 }; 154 };
OLDNEW
« no previous file with comments | « services/ui/public/interfaces/ime/BUILD.gn ('k') | ui/aura/mus/input_method_mus.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698