1// Copyright (c) 2012 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 ASH_IME_CONTROL_DELEGATE_H_
6#define ASH_IME_CONTROL_DELEGATE_H_
7
8namespace ui {
9class Accelerator;
10}  // namespace ui
11
12namespace ash {
13
14// Delegate for controlling IME (input method editor).
15class ImeControlDelegate {
16 public:
17  virtual ~ImeControlDelegate() {}
18
19  virtual bool HandleNextIme() = 0;
20  virtual bool HandlePreviousIme(const ui::Accelerator& accelerator) = 0;
21  // Switches to another IME depending on the |accelerator|.
22  virtual bool HandleSwitchIme(const ui::Accelerator& accelerator) = 0;
23
24  // Checks for special language anomalies and re-map the |accelerator|
25  // accordingly.
26  virtual ui::Accelerator RemapAccelerator(
27      const ui::Accelerator& accelerator) = 0;
28};
29
30}  // namespace ash
31
32#endif  // ASH_IME_CONTROL_DELEGATE_H_
33