• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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 #ifndef UI_BASE_IME_REMOTE_INPUT_METHOD_DELEGATE_WIN_H_
6 #define UI_BASE_IME_REMOTE_INPUT_METHOD_DELEGATE_WIN_H_
7 
8 #include <vector>
9 
10 #include "base/basictypes.h"
11 #include "ui/base/ui_base_export.h"
12 #include "ui/gfx/rect.h"
13 
14 namespace ui {
15 namespace internal {
16 
17 // An interface implemented by the object to forward events that should be
18 // handled by the IME which is running in the remote metro_driver process.
19 class UI_BASE_EXPORT RemoteInputMethodDelegateWin {
20  public:
~RemoteInputMethodDelegateWin()21   virtual ~RemoteInputMethodDelegateWin() {}
22 
23   // Notifies that composition should be canceled (if any).
24   virtual void CancelComposition() = 0;
25 
26   // Notifies that properties of the focused TextInputClient is changed.
27   // Note that an empty |input_scopes| represents that TextInputType is
28   // TEXT_INPUT_TYPE_NONE.
29   // Caveats: |input_scopes| is defined as std::vector<int32> rather than
30   // std::vector<InputScope> because the wire format of IPC message
31   // MetroViewerHostMsg_ImeTextInputClientUpdated uses std::vector<int32> to
32   // avoid dependency on <InputScope.h> header.
33   virtual void OnTextInputClientUpdated(
34       const std::vector<int32>& input_scopes,
35       const std::vector<gfx::Rect>& composition_character_bounds) = 0;
36 };
37 
38 }  // namespace internal
39 }  // namespace ui
40 
41 #endif  // UI_BASE_IME_REMOTE_INPUT_METHOD_DELEGATE_WIN_H_
42