6ecd6840febb0ab39fa4375095372a5ee0a0d0b1
[platform/framework/web/crosswalk.git] / src / ui / base / ime / input_method_auralinux.h
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_INPUT_METHOD_AURALINUX_H_
6 #define UI_BASE_IME_INPUT_METHOD_AURALINUX_H_
7
8 #include "base/memory/scoped_ptr.h"
9 #include "ui/base/ime/input_method_base.h"
10 #include "ui/base/ime/linux/linux_input_method_context.h"
11
12 namespace ui {
13
14 // A ui::InputMethod implementation for Aura on Linux platforms. The
15 // implementation details are separated to ui::LinuxInputMethodContext
16 // interface.
17 class InputMethodAuraLinux : public InputMethodBase,
18                              public LinuxInputMethodContextDelegate {
19  public:
20   explicit InputMethodAuraLinux(internal::InputMethodDelegate* delegate);
21   virtual ~InputMethodAuraLinux();
22
23   // Initializes input methods.  This function must be called once prior to
24   // any use of this instance.  This function is supposed to be called from
25   // ui::InitializeInputMethod().
26   static void Initialize();
27
28   // Overriden from InputMethod.
29   virtual void Init(bool focused) OVERRIDE;
30   virtual bool OnUntranslatedIMEMessage(const base::NativeEvent& event,
31                                         NativeEventResult* result) OVERRIDE;
32   virtual bool DispatchKeyEvent(const ui::KeyEvent& event) OVERRIDE;
33   virtual void OnTextInputTypeChanged(const TextInputClient* client) OVERRIDE;
34   virtual void OnCaretBoundsChanged(const TextInputClient* client) OVERRIDE;
35   virtual void CancelComposition(const TextInputClient* client) OVERRIDE;
36   virtual void OnInputLocaleChanged() OVERRIDE;
37   virtual std::string GetInputLocale() OVERRIDE;
38   virtual bool IsActive() OVERRIDE;
39   virtual bool IsCandidatePopupOpen() const OVERRIDE;
40
41   // Overriden from ui::LinuxInputMethodContextDelegate
42   virtual void OnCommit(const base::string16& text) OVERRIDE;
43   virtual void OnPreeditChanged(const CompositionText& composition_text)
44       OVERRIDE;
45   virtual void OnPreeditEnd() OVERRIDE;
46   virtual void OnPreeditStart() OVERRIDE;
47
48  protected:
49   // Overridden from InputMethodBase.
50   virtual void OnDidChangeFocusedClient(TextInputClient* focused_before,
51                                         TextInputClient* focused) OVERRIDE;
52
53   scoped_ptr<LinuxInputMethodContext> input_method_context_;
54
55   DISALLOW_COPY_AND_ASSIGN(InputMethodAuraLinux);
56 };
57
58 }  // namespace ui
59
60 #endif  // UI_BASE_IME_INPUT_METHOD_AURALINUX_H_