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.
5 #ifndef ASH_IME_CONTROL_DELEGATE_H_
6 #define ASH_IME_CONTROL_DELEGATE_H_
14 // Delegate for controlling IME (input method editor).
15 class ImeControlDelegate
{
17 virtual ~ImeControlDelegate() {}
19 // Returns whether a user can cycle through IMEs. Returns false if only one
21 virtual bool CanCycleIme() = 0;
23 // Changes the IME to what is listed next.
24 virtual void HandleNextIme() = 0;
26 // Changes the IME to previously selected one. If there is no previously
27 // selected IMEs, chooses the next listed IME.
28 virtual void HandlePreviousIme() = 0;
30 // Returns true if the IME can be switched to the IME associated with
32 virtual bool CanSwitchIme(const ui::Accelerator
& accelerator
) = 0;
34 // Switches to the IME associated with |accelerator|.
35 virtual void HandleSwitchIme(const ui::Accelerator
& accelerator
) = 0;
37 // Checks for special language anomalies and re-map the |accelerator|
39 virtual ui::Accelerator
RemapAccelerator(
40 const ui::Accelerator
& accelerator
) = 0;
45 #endif // ASH_IME_CONTROL_DELEGATE_H_