OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_CHROMEOS_CROS_INPUT_METHOD_LIBRARY_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_CROS_INPUT_METHOD_LIBRARY_H_ |
6 #define CHROME_BROWSER_CHROMEOS_CROS_INPUT_METHOD_LIBRARY_H_ | 6 #define CHROME_BROWSER_CHROMEOS_CROS_INPUT_METHOD_LIBRARY_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
11 | 11 |
12 #include "base/observer_list.h" | 12 #include "base/observer_list.h" |
13 #include "base/time.h" | 13 #include "base/time.h" |
14 #include "base/timer.h" | 14 #include "base/timer.h" |
15 #include "cros/chromeos_input_method.h" | 15 #include "cros/chromeos_input_method.h" |
16 | 16 |
17 namespace chromeos { | 17 namespace chromeos { |
18 | 18 |
19 // This class handles the interaction with the ChromeOS language library APIs. | 19 // This class handles the interaction with the ChromeOS language library APIs. |
20 // Classes can add themselves as observers. Users can get an instance of this | 20 // Classes can add themselves as observers. Users can get an instance of this |
21 // library class like this: | 21 // library class like this: |
22 // chromeos::CrosLibrary::Get()->GetInputMethodLibrary() | 22 // chromeos::CrosLibrary::Get()->GetInputMethodLibrary() |
23 class InputMethodLibrary { | 23 class InputMethodLibrary { |
24 public: | 24 public: |
25 class Observer { | 25 class Observer { |
26 public: | 26 public: |
27 virtual ~Observer() = 0; | 27 virtual ~Observer() = 0; |
28 // Called when the current input method is changed. | 28 // Called when the current input method is changed. |
29 virtual void InputMethodChanged(InputMethodLibrary* obj) = 0; | 29 virtual void InputMethodChanged( |
30 | 30 InputMethodLibrary* obj, |
31 // Called when input method properties (see chromeos_input_method.h | 31 const InputMethodDescriptor& previous_input_method, |
32 // for details) are changed. | 32 const InputMethodDescriptor& current_input_method, |
33 virtual void ImePropertiesChanged(InputMethodLibrary* obj) = 0; | 33 size_t num_active_input_methods) = 0; |
34 | 34 |
35 // Called when the active input methods are changed. | 35 // Called when the active input methods are changed. |
36 virtual void ActiveInputMethodsChanged(InputMethodLibrary* obj) = 0; | 36 virtual void ActiveInputMethodsChanged( |
| 37 InputMethodLibrary* obj, |
| 38 const InputMethodDescriptor& current_input_method, |
| 39 size_t num_active_input_methods) = 0; |
| 40 |
| 41 // Called when the preferences have to be updated. |
| 42 virtual void PreferenceUpdateNeeded( |
| 43 InputMethodLibrary* obj, |
| 44 const InputMethodDescriptor& previous_input_method, |
| 45 const InputMethodDescriptor& current_input_method) = 0; |
37 }; | 46 }; |
38 virtual ~InputMethodLibrary() {} | 47 virtual ~InputMethodLibrary() {} |
39 | 48 |
40 // Adds an observer to receive notifications of input method related | 49 // Adds an observer to receive notifications of input method related |
41 // changes as desribed in the Observer class above. | 50 // changes as desribed in the Observer class above. |
42 virtual void AddObserver(Observer* observer) = 0; | 51 virtual void AddObserver(Observer* observer) = 0; |
43 virtual void RemoveObserver(Observer* observer) = 0; | 52 virtual void RemoveObserver(Observer* observer) = 0; |
44 | 53 |
45 // Returns the list of input methods we can select (i.e. active). If the cros | 54 // Returns the list of input methods we can select (i.e. active). If the cros |
46 // library is not found or IBus/DBus daemon is not alive, this function | 55 // library is not found or IBus/DBus daemon is not alive, this function |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 virtual const ImePropertyList& current_ime_properties() const = 0; | 122 virtual const ImePropertyList& current_ime_properties() const = 0; |
114 | 123 |
115 // Factory function, creates a new instance and returns ownership. | 124 // Factory function, creates a new instance and returns ownership. |
116 // For normal usage, access the singleton via CrosLibrary::Get(). | 125 // For normal usage, access the singleton via CrosLibrary::Get(). |
117 static InputMethodLibrary* GetImpl(bool stub); | 126 static InputMethodLibrary* GetImpl(bool stub); |
118 }; | 127 }; |
119 | 128 |
120 } // namespace chromeos | 129 } // namespace chromeos |
121 | 130 |
122 #endif // CHROME_BROWSER_CHROMEOS_CROS_INPUT_METHOD_LIBRARY_H_ | 131 #endif // CHROME_BROWSER_CHROMEOS_CROS_INPUT_METHOD_LIBRARY_H_ |
OLD | NEW |