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 8 namespace ui { 9 class Accelerator; 10 } // namespace ui 11 12 namespace ash { 13 14 // Delegate for controlling IME (input method editor). 15 class ImeControlDelegate { 16 public: 17 virtual ~ImeControlDelegate() {} 18 19 // Changes the IME to what is listed next. This function do nothing if there 20 // is only one IME is enabled. 21 virtual void HandleNextIme() = 0; 22 23 // Changes the IME to previously selected one. If there is no previously 24 // selected IMEs, chooses the next listed IME. This function returns false if 25 // there is only one IME is enabled. 26 virtual bool HandlePreviousIme(const ui::Accelerator& accelerator) = 0; 27 28 // Switches to another IME depending on the |accelerator|. 29 virtual bool HandleSwitchIme(const ui::Accelerator& accelerator) = 0; 30 31 // Checks for special language anomalies and re-map the |accelerator| 32 // accordingly. 33 virtual ui::Accelerator RemapAccelerator( 34 const ui::Accelerator& accelerator) = 0; 35 }; 36 37 } // namespace ash 38 39 #endif // ASH_IME_CONTROL_DELEGATE_H_ 40