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 #include "chromeos/ime/ibus_bridge.h" | 5 #include "chromeos/ime/ibus_bridge.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/memory/singleton.h" | 9 #include "base/memory/singleton.h" |
10 | 10 |
11 namespace chromeos { | 11 namespace chromeos { |
12 | 12 |
13 namespace { | |
14 void NoOpCreateEngineReply(const dbus::ObjectPath& unused_path) {} | |
15 } // namespace | |
16 | |
17 static IBusBridge* g_ibus_bridge = NULL; | 13 static IBusBridge* g_ibus_bridge = NULL; |
18 | 14 |
19 // An implementation of IBusBridge. | 15 // An implementation of IBusBridge. |
20 class IBusBridgeImpl : public IBusBridge { | 16 class IBusBridgeImpl : public IBusBridge { |
21 public: | 17 public: |
22 IBusBridgeImpl() | 18 IBusBridgeImpl() |
23 : input_context_handler_(NULL), | 19 : input_context_handler_(NULL), |
24 engine_handler_(NULL), | 20 engine_handler_(NULL), |
25 candidate_window_handler_(NULL), | 21 candidate_window_handler_(NULL), |
26 panel_handler_(NULL) { | 22 panel_handler_(NULL) { |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 } | 66 } |
71 | 67 |
72 // IBusBridge override. | 68 // IBusBridge override. |
73 virtual void SetPropertyHandler( | 69 virtual void SetPropertyHandler( |
74 IBusPanelPropertyHandlerInterface* handler) OVERRIDE { | 70 IBusPanelPropertyHandlerInterface* handler) OVERRIDE { |
75 panel_handler_ = handler; | 71 panel_handler_ = handler; |
76 } | 72 } |
77 | 73 |
78 virtual void SetCreateEngineHandler( | 74 virtual void SetCreateEngineHandler( |
79 const std::string& engine_id, | 75 const std::string& engine_id, |
80 const IBusEngineFactoryService::CreateEngineHandler& handler) OVERRIDE { | 76 const CreateEngineHandler& handler) OVERRIDE { |
81 create_engine_handler_map_[engine_id] = handler; | 77 create_engine_handler_map_[engine_id] = handler; |
82 } | 78 } |
83 | 79 |
84 // IBusBridge override. | 80 // IBusBridge override. |
85 virtual void UnsetCreateEngineHandler(const std::string& engine_id) OVERRIDE { | 81 virtual void UnsetCreateEngineHandler(const std::string& engine_id) OVERRIDE { |
86 create_engine_handler_map_.erase(engine_id); | 82 create_engine_handler_map_.erase(engine_id); |
87 } | 83 } |
88 | 84 |
89 // IBusBridge override. | 85 // IBusBridge override. |
90 virtual void CreateEngine(const std::string& engine_id) OVERRIDE { | 86 virtual void CreateEngine(const std::string& engine_id) OVERRIDE { |
91 // TODO(nona): Change following condition to DCHECK once all legacy IME is | 87 // TODO(nona): Change following condition to DCHECK once all legacy IME is |
92 // migrated to extension IME. | 88 // migrated to extension IME. |
93 if (create_engine_handler_map_[engine_id].is_null()) | 89 if (create_engine_handler_map_[engine_id].is_null()) |
94 return; | 90 return; |
95 create_engine_handler_map_[engine_id].Run( | 91 create_engine_handler_map_[engine_id].Run(); |
96 base::Bind(&NoOpCreateEngineReply)); | |
97 } | 92 } |
98 | 93 |
99 private: | 94 private: |
100 IBusInputContextHandlerInterface* input_context_handler_; | 95 IBusInputContextHandlerInterface* input_context_handler_; |
101 IBusEngineHandlerInterface* engine_handler_; | 96 IBusEngineHandlerInterface* engine_handler_; |
102 IBusPanelCandidateWindowHandlerInterface* candidate_window_handler_; | 97 IBusPanelCandidateWindowHandlerInterface* candidate_window_handler_; |
103 IBusPanelPropertyHandlerInterface* panel_handler_; | 98 IBusPanelPropertyHandlerInterface* panel_handler_; |
104 std::map<std::string, IBusEngineFactoryService::CreateEngineHandler> | 99 std::map<std::string, CreateEngineHandler> create_engine_handler_map_; |
105 create_engine_handler_map_; | |
106 | 100 |
107 DISALLOW_COPY_AND_ASSIGN(IBusBridgeImpl); | 101 DISALLOW_COPY_AND_ASSIGN(IBusBridgeImpl); |
108 }; | 102 }; |
109 | 103 |
110 /////////////////////////////////////////////////////////////////////////////// | 104 /////////////////////////////////////////////////////////////////////////////// |
111 // IBusBridge | 105 // IBusBridge |
112 IBusBridge::IBusBridge() { | 106 IBusBridge::IBusBridge() { |
113 } | 107 } |
114 | 108 |
115 IBusBridge::~IBusBridge() { | 109 IBusBridge::~IBusBridge() { |
(...skipping 10 matching lines...) Expand all Loading... |
126 delete g_ibus_bridge; | 120 delete g_ibus_bridge; |
127 g_ibus_bridge = NULL; | 121 g_ibus_bridge = NULL; |
128 } | 122 } |
129 | 123 |
130 // static. | 124 // static. |
131 IBusBridge* IBusBridge::Get() { | 125 IBusBridge* IBusBridge::Get() { |
132 return g_ibus_bridge; | 126 return g_ibus_bridge; |
133 } | 127 } |
134 | 128 |
135 } // namespace chromeos | 129 } // namespace chromeos |
OLD | NEW |