Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Side by Side Diff: chrome/browser/chromeos/input_method/input_method_engine_ibus.cc

Issue 13060003: Extract Extension IME related utility. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressing comments Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698