Add ICU message format support
[chromium-blink-merge.git] / ui / base / ime / linux / linux_input_method_context.h
blob4611501d0629385cebd3c16f7fdd8d77ec146aad
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.
5 #ifndef UI_BASE_IME_LINUX_LINUX_INPUT_METHOD_CONTEXT_H_
6 #define UI_BASE_IME_LINUX_LINUX_INPUT_METHOD_CONTEXT_H_
8 #include "base/strings/string16.h"
9 #include "ui/base/ime/text_input_type.h"
10 #include "ui/base/ime/ui_base_ime_export.h"
12 namespace gfx {
13 class Rect;
16 namespace ui {
18 struct CompositionText;
19 class KeyEvent;
21 // An interface of input method context for input method frameworks on
22 // GNU/Linux and likes.
23 class UI_BASE_IME_EXPORT LinuxInputMethodContext {
24 public:
25 virtual ~LinuxInputMethodContext() {}
27 // Dispatches the key event to an underlying IME. Returns true if the key
28 // event is handled, otherwise false. A client must set the text input type
29 // before dispatching a key event.
30 virtual bool DispatchKeyEvent(const ui::KeyEvent& key_event) = 0;
32 // Tells the system IME for the cursor rect which is relative to the
33 // client window rect.
34 virtual void SetCursorLocation(const gfx::Rect& rect) = 0;
36 // Resets the context. A client needs to call OnTextInputTypeChanged() again
37 // before calling DispatchKeyEvent().
38 virtual void Reset() = 0;
40 // Focuses the context.
41 virtual void Focus() = 0;
43 // Blurs the context.
44 virtual void Blur() = 0;
47 // An interface of callback functions called from LinuxInputMethodContext.
48 class UI_BASE_IME_EXPORT LinuxInputMethodContextDelegate {
49 public:
50 virtual ~LinuxInputMethodContextDelegate() {}
52 // Commits the |text| to the text input client.
53 virtual void OnCommit(const base::string16& text) = 0;
55 // Sets the composition text to the text input client.
56 virtual void OnPreeditChanged(const CompositionText& composition_text) = 0;
58 // Cleans up a composition session and makes sure that the composition text is
59 // cleared.
60 virtual void OnPreeditEnd() = 0;
62 // Prepares things for a new composition session.
63 virtual void OnPreeditStart() = 0;
66 } // namespace ui
68 #endif // UI_BASE_IME_LINUX_LINUX_INPUT_METHOD_CONTEXT_H_