15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef ASH_IME_CONTROL_DELEGATE_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ASH_IME_CONTROL_DELEGATE_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ui { 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Accelerator; 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ui 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ash { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Delegate for controlling IME (input method editor). 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ImeControlDelegate { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~ImeControlDelegate() {} 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool HandleNextIme() = 0; 20a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch virtual bool HandlePreviousIme(const ui::Accelerator& accelerator) = 0; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Switches to another IME depending on the |accelerator|. 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool HandleSwitchIme(const ui::Accelerator& accelerator) = 0; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Checks for special language anomalies and re-map the |accelerator| 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // accordingly. 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ui::Accelerator RemapAccelerator( 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ui::Accelerator& accelerator) = 0; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ash 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // ASH_IME_CONTROL_DELEGATE_H_ 33