C++程序  |  39行  |  1.36 KB

// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MOJO_VIEWS_INPUT_METHOD_MOJO_LINUX_H_
#define MOJO_VIEWS_INPUT_METHOD_MOJO_LINUX_H_

#include "ui/base/ime/input_method_auralinux.h"
#include "ui/base/ime/input_method_delegate.h"

namespace mojo {

// An input method for linux that does absolutely no translation.
//
// The current InputMethodMinimal makes assumptions that a system will only
// input/output keydown/keyup events; it assumes that things don't work like
// Windows does. When it gets a keydown event, it then tries to insert a
// character at the same time.
//
// However, we're standardizing on Windows' WM_CHAR style events. This tries to
// follow InputMethodWin::DispatchKeyEvent() instead, because PlatformViewX11
// now synthesizes a character events so that we have one behaviour across our
// platforms.
class InputMethodMojoLinux : public ui::InputMethodAuraLinux {
 public:
  explicit InputMethodMojoLinux(ui::internal::InputMethodDelegate* delegate);
  virtual ~InputMethodMojoLinux();

  // Overriden from ui::InputMethodAuraLinux:
  virtual bool DispatchKeyEvent(const ui::KeyEvent& event) OVERRIDE;

 private:
  DISALLOW_COPY_AND_ASSIGN(InputMethodMojoLinux);
};

}  // namespace mojo

#endif  // MOJO_VIEWS_INPUT_METHOD_MOJO_LINUX_H_