summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/input_method/ibus_controller_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/chromeos/input_method/ibus_controller_impl.h')
-rw-r--r--chrome/browser/chromeos/input_method/ibus_controller_impl.h55
1 files changed, 6 insertions, 49 deletions
diff --git a/chrome/browser/chromeos/input_method/ibus_controller_impl.h b/chrome/browser/chromeos/input_method/ibus_controller_impl.h
index 75652c1..b27ecb8 100644
--- a/chrome/browser/chromeos/input_method/ibus_controller_impl.h
+++ b/chrome/browser/chromeos/input_method/ibus_controller_impl.h
@@ -13,6 +13,7 @@
#include "chrome/browser/chromeos/input_method/ibus_controller_base.h"
#include "chrome/browser/chromeos/input_method/input_method_whitelist.h"
#include "chromeos/dbus/ibus/ibus_panel_service.h"
+#include "chromeos/ime/ibus_daemon_controller.h"
namespace ui {
class InputMethodIBus;
@@ -27,15 +28,13 @@ typedef std::vector<InputMethodProperty> InputMethodPropertyList;
// The IBusController implementation.
class IBusControllerImpl : public IBusControllerBase,
- public IBusPanelPropertyHandlerInterface {
+ public IBusPanelPropertyHandlerInterface,
+ public IBusDaemonController::Observer {
public:
IBusControllerImpl();
virtual ~IBusControllerImpl();
// IBusController overrides:
- virtual bool Start() OVERRIDE;
- virtual void Reset() OVERRIDE;
- virtual bool Stop() OVERRIDE;
virtual bool ChangeInputMethod(const std::string& id) OVERRIDE;
virtual bool ActivateInputMethodProperty(const std::string& key) OVERRIDE;
@@ -45,15 +44,10 @@ class IBusControllerImpl : public IBusControllerBase,
const InputMethodProperty& new_prop,
InputMethodPropertyList* prop_list);
- void IBusDaemonInitializationDone(const std::string& ibus_address);
-
private:
- enum IBusDaemonStatus{
- IBUS_DAEMON_INITIALIZING,
- IBUS_DAEMON_RUNNING,
- IBUS_DAEMON_SHUTTING_DOWN,
- IBUS_DAEMON_STOP,
- };
+ // IBusDaemonController overrides:
+ virtual void OnConnected() OVERRIDE;
+ virtual void OnDisconnected() OVERRIDE;
// IBusControllerBase overrides:
virtual bool SetInputMethodConfigInternal(
@@ -71,40 +65,9 @@ class IBusControllerImpl : public IBusControllerBase,
// Just calls ibus_bus_set_global_engine_async() with the |id|.
void SendChangeInputMethodRequest(const std::string& id);
- // Adds address file watcher in FILE thread and then calls LaunchIBusDaemon.
- bool StartIBusDaemon();
-
- // Starts ibus-daemon.
- void LaunchIBusDaemon(const std::string& ibus_address);
-
- // Launches an input method procsess specified by the given command
- // line. On success, returns true and stores the process handle in
- // |process_handle|. Otherwise, returns false, and the contents of
- // |process_handle| is untouched.
- bool LaunchProcess(const std::string& command_line,
- base::ProcessHandle* process_handle);
-
- // Returns pointer to InputMethod object.
- ui::InputMethodIBus* GetInputMethod();
-
- // Injects an alternative ui::InputMethod for testing.
- // The injected object must be released by caller.
- void set_input_method_for_testing(ui::InputMethodIBus* input_method);
-
// Called when the IBusConfigClient is initialized.
void OnIBusConfigClientInitialized();
- // Called when the input method process is shut down.
- void OnIBusDaemonDisconnected(base::ProcessId pid);
-
- // The current ibus_daemon address. This value is assigned at the launching
- // ibus-daemon and used in bus connection initialization.
- std::string ibus_daemon_address_;
-
- // The process handle of the IBus daemon. kNullProcessHandle if it's not
- // running.
- base::ProcessHandle process_handle_;
-
// Current input context path.
std::string current_input_context_path_;
@@ -115,12 +78,6 @@ class IBusControllerImpl : public IBusControllerBase,
// An object which knows all valid input methods and layout IDs.
InputMethodWhitelist whitelist_;
- // Represents ibus-daemon's status.
- IBusDaemonStatus ibus_daemon_status_;
-
- // The pointer to global input method. We can inject this value for testing.
- ui::InputMethodIBus* input_method_;
-
// IBusControllerImpl should be used only on UI thread.
base::ThreadChecker thread_checker_;