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// This file implements the input method candidate window used on Chrome OS. 6 7#ifndef CHROME_BROWSER_CHROMEOS_INPUT_METHOD_CANDIDATE_WINDOW_CONTROLLER_H_ 8#define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_CANDIDATE_WINDOW_CONTROLLER_H_ 9 10#include "base/basictypes.h" 11 12namespace chromeos { 13namespace input_method { 14 15// CandidateWindowController is used for controlling the input method 16// candidate window. Once the initialization is done, the controller 17// starts monitoring signals sent from the the background input method 18// daemon, and shows and hides the candidate window as neeeded. Upon 19// deletion of the object, monitoring stops and the view used for 20// rendering the candidate view is deleted. 21class CandidateWindowController { 22 public: 23 class Observer { 24 public: 25 virtual ~Observer() {} 26 27 virtual void CandidateClicked(int index) = 0; 28 virtual void CandidateWindowOpened() = 0; 29 virtual void CandidateWindowClosed() = 0; 30 }; 31 32 virtual ~CandidateWindowController() {} 33 34 virtual void AddObserver(Observer* observer) = 0; 35 virtual void RemoveObserver(Observer* observer) = 0; 36 virtual void Hide() = 0; 37 38 // Gets an instance of CandidateWindowController. Caller has to delete the 39 // returned object. 40 static CandidateWindowController* CreateCandidateWindowController(); 41}; 42 43} // namespace input_method 44} // namespace chromeos 45 46#endif // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_CANDIDATE_WINDOW_CONTROLLER_H_ 47