| // 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 keyboard; | 
 |  | 
 | struct CompletionData { | 
 |   int64 id; | 
 |   int32 position; | 
 |   string text; | 
 |   string label; | 
 | }; | 
 |  | 
 | struct CorrectionData { | 
 |   int32 offset; | 
 |   string old_text; | 
 |   string new_text; | 
 | }; | 
 |  | 
 | interface KeyboardClient { | 
 |   CommitCompletion(CompletionData completion); | 
 |   CommitCorrection(CorrectionData correction); | 
 |   CommitText(string text, int32 newCursorPosition); | 
 |   DeleteSurroundingText(int32 beforeLength, int32 afterLength); | 
 |   SetComposingRegion(int32 start, int32 end); | 
 |   SetComposingText(string text, int32 newCursorPosition); | 
 |   SetSelection(int32 start, int32 end); | 
 | }; | 
 |  | 
 | interface KeyboardService { | 
 |   Show(KeyboardClient client); | 
 |   ShowByRequest(); | 
 |   Hide(); | 
 | }; |