| 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 "chrome/browser/chromeos/input_method/input_method_engine_ibus.h" |    5 #include "chrome/browser/chromeos/input_method/input_method_engine_ibus.h" | 
|    6  |    6  | 
|    7 #define XK_MISCELLANY |    7 #define XK_MISCELLANY | 
|    8 #include <X11/keysymdef.h> |    8 #include <X11/keysymdef.h> | 
|    9 #include <map> |    9 #include <map> | 
|   10  |   10  | 
|   11 #include "base/logging.h" |   11 #include "base/logging.h" | 
|   12 #include "base/memory/scoped_ptr.h" |   12 #include "base/memory/scoped_ptr.h" | 
|   13 #include "base/string_util.h" |   13 #include "base/string_util.h" | 
|   14 #include "base/strings/string_number_conversions.h" |   14 #include "base/strings/string_number_conversions.h" | 
|   15 #include "base/utf_string_conversions.h" |   15 #include "base/utf_string_conversions.h" | 
|   16 #include "chrome/browser/chromeos/input_method/input_method_configuration.h" |   16 #include "chrome/browser/chromeos/input_method/input_method_configuration.h" | 
|   17 #include "chrome/browser/chromeos/input_method/input_method_manager.h" |   17 #include "chrome/browser/chromeos/input_method/input_method_manager.h" | 
|   18 #include "chrome/browser/chromeos/input_method/input_method_util.h" |   18 #include "chrome/browser/chromeos/input_method/input_method_util.h" | 
|   19 #include "chromeos/dbus/dbus_thread_manager.h" |   19 #include "chromeos/dbus/dbus_thread_manager.h" | 
|   20 #include "chromeos/dbus/ibus/ibus_client.h" |   20 #include "chromeos/dbus/ibus/ibus_client.h" | 
|   21 #include "chromeos/dbus/ibus/ibus_component.h" |   21 #include "chromeos/dbus/ibus/ibus_component.h" | 
|   22 #include "chromeos/dbus/ibus/ibus_engine_factory_service.h" |   22 #include "chromeos/dbus/ibus/ibus_engine_factory_service.h" | 
|   23 #include "chromeos/dbus/ibus/ibus_engine_service.h" |   23 #include "chromeos/dbus/ibus/ibus_engine_service.h" | 
|   24 #include "chromeos/dbus/ibus/ibus_lookup_table.h" |   24 #include "chromeos/dbus/ibus/ibus_lookup_table.h" | 
|   25 #include "chromeos/dbus/ibus/ibus_property.h" |   25 #include "chromeos/dbus/ibus/ibus_property.h" | 
|   26 #include "chromeos/dbus/ibus/ibus_text.h" |   26 #include "chromeos/dbus/ibus/ibus_text.h" | 
 |   27 #include "chromeos/ime/extension_ime_util.h" | 
|   27 #include "chromeos/ime/ibus_keymap.h" |   28 #include "chromeos/ime/ibus_keymap.h" | 
|   28 #include "dbus/object_path.h" |   29 #include "dbus/object_path.h" | 
|   29  |   30  | 
|   30 namespace chromeos { |   31 namespace chromeos { | 
|   31 const char* kExtensionImePrefix = "_ext_ime_"; |  | 
|   32 const char* kErrorNotActive = "IME is not active"; |   32 const char* kErrorNotActive = "IME is not active"; | 
|   33 const char* kErrorWrongContext = "Context is not active"; |   33 const char* kErrorWrongContext = "Context is not active"; | 
|   34 const char* kCandidateNotFound = "Candidate not found"; |   34 const char* kCandidateNotFound = "Candidate not found"; | 
|   35 const char* kEngineBusPrefix = "org.freedesktop.IBus."; |   35 const char* kEngineBusPrefix = "org.freedesktop.IBus."; | 
|   36 const char* kObjectPathPrefix = "/org/freedesktop/IBus/Engine/"; |   36 const char* kObjectPathPrefix = "/org/freedesktop/IBus/Engine/"; | 
|   37  |   37  | 
|   38 namespace { |   38 namespace { | 
|   39 const uint32 kIBusAltKeyMask = 1 << 3; |   39 const uint32 kIBusAltKeyMask = 1 << 3; | 
|   40 const uint32 kIBusCtrlKeyMask = 1 << 2; |   40 const uint32 kIBusCtrlKeyMask = 1 << 2; | 
|   41 const uint32 kIBusShiftKeyMask = 1 << 0; |   41 const uint32 kIBusShiftKeyMask = 1 << 0; | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
|   71     const char* extension_id, |   71     const char* extension_id, | 
|   72     const char* engine_id, |   72     const char* engine_id, | 
|   73     const char* description, |   73     const char* description, | 
|   74     const char* language, |   74     const char* language, | 
|   75     const std::vector<std::string>& layouts, |   75     const std::vector<std::string>& layouts, | 
|   76     std::string* error) { |   76     std::string* error) { | 
|   77   DCHECK(observer) << "Observer must not be null."; |   77   DCHECK(observer) << "Observer must not be null."; | 
|   78  |   78  | 
|   79   observer_ = observer; |   79   observer_ = observer; | 
|   80   engine_id_ = engine_id; |   80   engine_id_ = engine_id; | 
|   81   ibus_id_ = kExtensionImePrefix; |   81   ibus_id_ = extension_ime_util::GetInputMethodID(extension_id, engine_id); | 
|   82   ibus_id_ += extension_id; |  | 
|   83   ibus_id_ += engine_id; |  | 
|   84  |   82  | 
|   85   input_method::InputMethodManager* manager = |   83   input_method::InputMethodManager* manager = | 
|   86       input_method::GetInputMethodManager(); |   84       input_method::GetInputMethodManager(); | 
|   87   std::string layout; |   85   std::string layout; | 
|   88   if (!layouts.empty()) { |   86   if (!layouts.empty()) { | 
|   89     layout = JoinString(layouts, ','); |   87     layout = JoinString(layouts, ','); | 
|   90   } else { |   88   } else { | 
|   91     const std::string fallback_id = |   89     const std::string fallback_id = | 
|   92         manager->GetInputMethodUtil()->GetHardwareInputMethodId(); |   90         manager->GetInputMethodUtil()->GetHardwareInputMethodId(); | 
|   93     const input_method::InputMethodDescriptor* fallback_desc = |   91     const input_method::InputMethodDescriptor* fallback_desc = | 
| (...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  608   DBusThreadManager::Get()->RemoveIBusEngineService(object_path_); |  606   DBusThreadManager::Get()->RemoveIBusEngineService(object_path_); | 
|  609  |  607  | 
|  610   current_object_path_++; |  608   current_object_path_++; | 
|  611   object_path_ = dbus::ObjectPath(kObjectPathPrefix + |  609   object_path_ = dbus::ObjectPath(kObjectPathPrefix + | 
|  612                                   base::IntToString(current_object_path_)); |  610                                   base::IntToString(current_object_path_)); | 
|  613   GetCurrentService()->SetEngine(this); |  611   GetCurrentService()->SetEngine(this); | 
|  614   sender.Run(object_path_); |  612   sender.Run(object_path_); | 
|  615 } |  613 } | 
|  616  |  614  | 
|  617 }  // namespace chromeos |  615 }  // namespace chromeos | 
| OLD | NEW |