Roll src/third_party/WebKit 0e611fa:08c8269 (svn 190191:190194)
[chromium-blink-merge.git] / ash / ime_control_delegate.h
blobe90b48f6b7b714e5ceaa67f2ffd95d03417c4b4a
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_
8 namespace ui {
9 class Accelerator;
10 } // namespace ui
12 namespace ash {
14 // Delegate for controlling IME (input method editor).
15 class ImeControlDelegate {
16 public:
17 virtual ~ImeControlDelegate() {}
19 // Returns whether a user can cycle through IMEs. Returns false if only one
20 // IME is enabled.
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
31 // |accelerator|.
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|
38 // accordingly.
39 virtual ui::Accelerator RemapAccelerator(
40 const ui::Accelerator& accelerator) = 0;
43 } // namespace ash
45 #endif // ASH_IME_CONTROL_DELEGATE_H_