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

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

Issue 11857008: Remove InputMethodLookupTable and use IBusLookupTable instead. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 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
« no previous file with comments | « chrome/browser/chromeos/input_method/ibus_ui_controller.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 // TODO(nona): Remvoe IBusUiController 4 // TODO(nona): Remvoe IBusUiController
5 5
6 #include "chrome/browser/chromeos/input_method/ibus_ui_controller.h" 6 #include "chrome/browser/chromeos/input_method/ibus_ui_controller.h"
7 7
8 #include <sstream> 8 #include <sstream>
9 9
10 #include "ash/shell.h" 10 #include "ash/shell.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 71
72 void set_ui(IBusUiController* ui) { 72 void set_ui(IBusUiController* ui) {
73 ui_ = ui; 73 ui_ = ui;
74 } 74 }
75 75
76 private: 76 private:
77 IBusUiController* ui_; 77 IBusUiController* ui_;
78 DISALLOW_COPY_AND_ASSIGN(IBusChromeOSClientImpl); 78 DISALLOW_COPY_AND_ASSIGN(IBusChromeOSClientImpl);
79 }; 79 };
80 80
81 InputMethodLookupTable::InputMethodLookupTable()
82 : visible(false),
83 cursor_absolute_index(0),
84 page_size(0),
85 orientation(kHorizontal) {
86 }
87
88 InputMethodLookupTable::~InputMethodLookupTable() {
89 }
90
91 std::string InputMethodLookupTable::ToString() const {
92 std::stringstream stream;
93 stream << "visible: " << visible << "\n";
94 stream << "cursor_absolute_index: " << cursor_absolute_index << "\n";
95 stream << "page_size: " << page_size << "\n";
96 stream << "orientation: " << orientation << "\n";
97 stream << "candidates:";
98 for (size_t i = 0; i < candidates.size(); ++i) {
99 stream << " [" << candidates[i] << "]";
100 }
101 stream << "\nlabels:";
102 for (size_t i = 0; i < labels.size(); ++i) {
103 stream << " [" << labels[i] << "]";
104 }
105 return stream.str();
106 }
107
108 // The real implementation of the IBusUiController. 81 // The real implementation of the IBusUiController.
109 IBusUiController::IBusUiController() { 82 IBusUiController::IBusUiController() {
110 ui::InputMethodIBus* input_method = GetChromeInputMethod(); 83 ui::InputMethodIBus* input_method = GetChromeInputMethod();
111 DCHECK(input_method); 84 DCHECK(input_method);
112 input_method->set_ibus_client(scoped_ptr<ui::internal::IBusClient>( 85 input_method->set_ibus_client(scoped_ptr<ui::internal::IBusClient>(
113 new IBusChromeOSClientImpl(this)).Pass()); 86 new IBusChromeOSClientImpl(this)).Pass());
114 } 87 }
115 88
116 IBusUiController::~IBusUiController() { 89 IBusUiController::~IBusUiController() {
117 ui::InputMethodIBus* input_method = GetChromeInputMethod(); 90 ui::InputMethodIBus* input_method = GetChromeInputMethod();
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 FOR_EACH_OBSERVER(Observer, observers_, 165 FOR_EACH_OBSERVER(Observer, observers_,
193 OnUpdatePreeditText(text, cursor_pos, visible)); 166 OnUpdatePreeditText(text, cursor_pos, visible));
194 } 167 }
195 168
196 void IBusUiController::HidePreeditText() { 169 void IBusUiController::HidePreeditText() {
197 FOR_EACH_OBSERVER(Observer, observers_, OnHidePreeditText()); 170 FOR_EACH_OBSERVER(Observer, observers_, OnHidePreeditText());
198 } 171 }
199 172
200 void IBusUiController::UpdateLookupTable(const ibus::IBusLookupTable& table, 173 void IBusUiController::UpdateLookupTable(const ibus::IBusLookupTable& table,
201 bool visible) { 174 bool visible) {
202 // TODO(nona): Use ibus::IBusLookupTable instead. 175 FOR_EACH_OBSERVER(Observer, observers_, OnUpdateLookupTable(table, visible));
203 InputMethodLookupTable lookup_table;
204 lookup_table.visible = visible;
205
206 // Copy the orientation information.
207 if (table.orientation() == ibus::IBusLookupTable::VERTICAL) {
208 lookup_table.orientation = InputMethodLookupTable::kVertical;
209 } else {
210 lookup_table.orientation = InputMethodLookupTable::kHorizontal;
211 }
212
213 lookup_table.show_at_composition_head = table.show_window_at_composition();
214
215 // Copy candidates and annotations to |lookup_table|.
216 for (size_t i = 0; i < table.candidates().size(); ++i) {
217 const ibus::IBusLookupTable::Entry& entry = table.candidates()[i];
218 lookup_table.candidates.push_back(entry.value);
219 lookup_table.labels.push_back(entry.label);
220 lookup_table.annotations.push_back(entry.annotation);
221
222 InputMethodLookupTable::Description description;
223 description.title = entry.description_title;
224 description.body = entry.description_body;
225 lookup_table.descriptions.push_back(description);
226 }
227
228 lookup_table.cursor_absolute_index = table.cursor_position();
229 lookup_table.page_size = table.page_size();
230 // Ensure that the page_size is non-zero to avoid div-by-zero error.
231 if (lookup_table.page_size <= 0) {
232 DVLOG(1) << "Invalid page size: " << lookup_table.page_size;
233 lookup_table.page_size = 1;
234 }
235
236 FOR_EACH_OBSERVER(Observer, observers_,
237 OnUpdateLookupTable(lookup_table));
238 } 176 }
239 177
240 } // namespace input_method 178 } // namespace input_method
241 } // namespace chromeos 179 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/input_method/ibus_ui_controller.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698