OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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_INPUT_METHOD_IBUS_CONTROLLER_IMPL_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_INPUT_METHOD_IBUS_CONTROLLER_IMPL_H_ |
6 #define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_IBUS_CONTROLLER_IMPL_H_ | 6 #define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_IBUS_CONTROLLER_IMPL_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <gio/gio.h> // GAsyncResult and related types. | 9 #include <gio/gio.h> // GAsyncResult and related types. |
10 #include <glib-object.h> | 10 #include <glib-object.h> |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
108 void ConnectBusSignals(); | 108 void ConnectBusSignals(); |
109 | 109 |
110 // Starts listening to the "focus-in", "register-properties", and | 110 // Starts listening to the "focus-in", "register-properties", and |
111 // "update-property" D-Bus signals from ibus-daemon. | 111 // "update-property" D-Bus signals from ibus-daemon. |
112 void ConnectPanelServiceSignals(); | 112 void ConnectPanelServiceSignals(); |
113 | 113 |
114 // Starts ibus-daemon if it's not yet started and |should_launch_daemon_| is | 114 // Starts ibus-daemon if it's not yet started and |should_launch_daemon_| is |
115 // true. | 115 // true. |
116 bool MaybeLaunchIBusDaemon(); | 116 bool MaybeLaunchIBusDaemon(); |
117 | 117 |
118 // Starts ibus-daemon. | |
119 void LaunchIBusDaemon(const std::string& ibus_address); | |
120 | |
118 // Launches an input method procsess specified by the given command | 121 // Launches an input method procsess specified by the given command |
119 // line. On success, returns true and stores the process handle in | 122 // line. On success, returns true and stores the process handle in |
120 // |process_handle|. Otherwise, returns false, and the contents of | 123 // |process_handle|. Otherwise, returns false, and the contents of |
121 // |process_handle| is untouched. |watch_func| will be called when the | 124 // |process_handle| is untouched. |watch_func| will be called when the |
122 // process terminates. | 125 // process terminates. |
123 bool LaunchProcess(const std::string& command_line, | 126 bool LaunchProcess(const std::string& command_line, |
124 base::ProcessHandle* process_handle, | 127 base::ProcessHandle* process_handle, |
125 GChildWatchFunc watch_func); | 128 GChildWatchFunc watch_func); |
126 | 129 |
130 // Called after the connection to ibus-daemon is established. | |
131 void IBusDaemonInitializationDone(); | |
132 | |
127 // A callback function that will be called when ibus_config_set_value_async() | 133 // A callback function that will be called when ibus_config_set_value_async() |
128 // request is finished. | 134 // request is finished. |
129 static void SetInputMethodConfigCallback(GObject* source_object, | 135 static void SetInputMethodConfigCallback(GObject* source_object, |
130 GAsyncResult* res, | 136 GAsyncResult* res, |
131 gpointer user_data); | 137 gpointer user_data); |
132 | 138 |
133 // Called when the input method process is shut down. | 139 // Called when the input method process is shut down. |
134 static void OnIBusDaemonExit(GPid pid, | 140 static void OnIBusDaemonExit(GPid pid, |
135 gint status, | 141 gint status, |
136 IBusControllerImpl* controller); | 142 IBusControllerImpl* controller); |
(...skipping 13 matching lines...) Expand all Loading... | |
150 // Current input context path. | 156 // Current input context path. |
151 std::string current_input_context_path_; | 157 std::string current_input_context_path_; |
152 | 158 |
153 // The input method ID which is currently selected. The ID is sent to the | 159 // The input method ID which is currently selected. The ID is sent to the |
154 // daemon when |ibus_| and |ibus_config_| connections are both established. | 160 // daemon when |ibus_| and |ibus_config_| connections are both established. |
155 std::string current_input_method_id_; | 161 std::string current_input_method_id_; |
156 | 162 |
157 // An object which knows all valid input methods and layout IDs. | 163 // An object which knows all valid input methods and layout IDs. |
158 InputMethodWhitelist whitelist_; | 164 InputMethodWhitelist whitelist_; |
159 | 165 |
166 base::WeakPtrFactory<IBusControllerImpl> weak_ptr_factory_; | |
Yusuke Sato
2012/04/27 02:12:13
add comment. please explain why this is necessary.
Seigo Nonaka
2012/05/01 00:19:54
Done.
| |
167 | |
168 // true if ibus-daemon is initializing. The initializing steps are as follows. | |
169 // 1. Starts watching ibus address file. | |
170 // 2. Launches ibus-daemon and ibus-daemon write ibus address file if ready. | |
171 // 3. Gets notification of changing address file, then creates connection. | |
172 // 4. Deletes watcher. | |
173 bool is_initializing_ibus_daemon_; | |
Yusuke Sato
2012/04/27 02:12:13
I don't want to have two similar boolean flags her
Seigo Nonaka
2012/05/01 00:19:54
Done.
| |
174 | |
160 DISALLOW_COPY_AND_ASSIGN(IBusControllerImpl); | 175 DISALLOW_COPY_AND_ASSIGN(IBusControllerImpl); |
161 }; | 176 }; |
162 | 177 |
163 } // namespace input_method | 178 } // namespace input_method |
164 } // namespace chromeos | 179 } // namespace chromeos |
165 | 180 |
166 #endif // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_IBUS_CONTROLLER_IMPL_H_ | 181 #endif // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_IBUS_CONTROLLER_IMPL_H_ |
OLD | NEW |