Home | History | Annotate | Download | only in ime
      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:
     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