Upstream version 11.39.266.0
[platform/framework/web/crosswalk.git] / src / mojo / views / input_method_mojo_linux.h
1 // Copyright 2014 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 MOJO_VIEWS_INPUT_METHOD_MOJO_LINUX_H_
6 #define MOJO_VIEWS_INPUT_METHOD_MOJO_LINUX_H_
7
8 #include "ui/base/ime/input_method_auralinux.h"
9 #include "ui/base/ime/input_method_delegate.h"
10
11 namespace mojo {
12
13 // An input method for linux that does absolutely no translation.
14 //
15 // The current InputMethodMinimal makes assumptions that a system will only
16 // input/output keydown/keyup events; it assumes that things don't work like
17 // Windows does. When it gets a keydown event, it then tries to insert a
18 // character at the same time.
19 //
20 // However, we're standardizing on Windows' WM_CHAR style events. This tries to
21 // follow InputMethodWin::DispatchKeyEvent() instead, because PlatformViewX11
22 // now synthesizes a character events so that we have one behaviour across our
23 // platforms.
24 class InputMethodMojoLinux : public ui::InputMethodAuraLinux {
25  public:
26   explicit InputMethodMojoLinux(ui::internal::InputMethodDelegate* delegate);
27   virtual ~InputMethodMojoLinux();
28
29   // Overriden from ui::InputMethodAuraLinux:
30   virtual bool DispatchKeyEvent(const ui::KeyEvent& event) OVERRIDE;
31
32  private:
33   DISALLOW_COPY_AND_ASSIGN(InputMethodMojoLinux);
34 };
35
36 }  // namespace mojo
37
38 #endif  // MOJO_VIEWS_INPUT_METHOD_MOJO_LINUX_H_