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

Unified Diff: chromeos/dbus/ibus/ibus_text.cc

Issue 61003004: Delete ibus_object and move ibus_text to chromeos/ime. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Modified based on the review. Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromeos/dbus/ibus/ibus_text.h ('k') | chromeos/dbus/ibus/ibus_text_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/dbus/ibus/ibus_text.cc
diff --git a/chromeos/dbus/ibus/ibus_text.cc b/chromeos/dbus/ibus/ibus_text.cc
deleted file mode 100644
index dfc5ab49c80d411b126a06cd03a7fb225f96e696..0000000000000000000000000000000000000000
--- a/chromeos/dbus/ibus/ibus_text.cc
+++ /dev/null
@@ -1,239 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chromeos/dbus/ibus/ibus_text.h"
-
-#include "base/logging.h"
-#include "base/values.h"
-#include "chromeos/dbus/ibus/ibus_object.h"
-#include "dbus/message.h"
-
-namespace chromeos {
-
-namespace {
-const uint32 kAttributeUnderline = 1; // Indicates underline attribute.
-const uint32 kAttributeSelection = 2; // Indicates background attribute.
-const char kAnnotationKey[] = "annotation";
-const char kDescriptionTitleKey[] = "description_title";
-const char kDescriptionBodyKey[] = "description_body";
-
-struct IBusAttribute {
- IBusAttribute() : type(0), value(0), start_index(0), end_index(0) {}
- uint32 type;
- uint32 value;
- uint32 start_index;
- uint32 end_index;
-};
-
-// Pops a IBusAttribute from |reader|.
-// Returns false if an error occurs.
-bool PopIBusAttribute(dbus::MessageReader* reader, IBusAttribute* attribute) {
- IBusObjectReader ibus_object_reader("IBusAttribute", reader);
- if (!ibus_object_reader.Init())
- return false;
-
- if (!ibus_object_reader.PopUint32(&attribute->type) ||
- !ibus_object_reader.PopUint32(&attribute->value) ||
- !ibus_object_reader.PopUint32(&attribute->start_index) ||
- !ibus_object_reader.PopUint32(&attribute->end_index)) {
- LOG(ERROR) << "Invalid variant structure[IBusAttribute]: "
- << "IBusAttribute should contain 4 unsigned integers.";
- return false;
- }
- return true;
-}
-
-// Appends a IBusAttribute into |writer|.
-void AppendIBusAttribute(dbus::MessageWriter* writer,
- const IBusAttribute& attribute) {
- IBusObjectWriter ibus_attribute_writer("IBusAttribute", "uuuu", writer);
- ibus_attribute_writer.CloseHeader();
- ibus_attribute_writer.AppendUint32(attribute.type);
- ibus_attribute_writer.AppendUint32(attribute.value);
- ibus_attribute_writer.AppendUint32(attribute.start_index);
- ibus_attribute_writer.AppendUint32(attribute.end_index);
- ibus_attribute_writer.CloseAll();
-}
-
-} // namespace
-
-void AppendIBusText(const IBusText& ibus_text, dbus::MessageWriter* writer) {
- IBusObjectWriter ibus_text_writer("IBusText", "sv", writer);
-
- if (!ibus_text.annotation().empty()) {
- scoped_ptr<base::Value> annotation(
- base::Value::CreateStringValue(ibus_text.annotation()));
- ibus_text_writer.AddAttachment(kAnnotationKey, *annotation.get());
- }
- if (!ibus_text.description_title().empty()) {
- scoped_ptr<base::Value> description_title(
- base::Value::CreateStringValue(ibus_text.description_title()));
- ibus_text_writer.AddAttachment(kDescriptionTitleKey,
- *description_title.get());
- }
- if (!ibus_text.description_body().empty()) {
- scoped_ptr<base::Value> description_body(
- base::Value::CreateStringValue(ibus_text.description_body()));
- ibus_text_writer.AddAttachment(kDescriptionBodyKey,
- *description_body.get());
- }
- ibus_text_writer.CloseHeader();
-
- ibus_text_writer.AppendString(ibus_text.text());
-
- // Start appending IBusAttrList into IBusText
- IBusObjectWriter ibus_attr_list_writer("IBusAttrList", "av", NULL);
- ibus_text_writer.AppendIBusObject(&ibus_attr_list_writer);
- ibus_attr_list_writer.CloseHeader();
- dbus::MessageWriter attribute_array_writer(NULL);
- ibus_attr_list_writer.OpenArray("v", &attribute_array_writer);
-
- const std::vector<IBusText::UnderlineAttribute>& underline_attributes =
- ibus_text.underline_attributes();
- for (size_t i = 0; i < underline_attributes.size(); ++i) {
- IBusAttribute attribute;
- attribute.type = kAttributeUnderline;
- attribute.value = static_cast<uint32>(underline_attributes[i].type);
- attribute.start_index = underline_attributes[i].start_index;
- attribute.end_index = underline_attributes[i].end_index;
- AppendIBusAttribute(&attribute_array_writer, attribute);
- }
-
- const std::vector<IBusText::SelectionAttribute>& selection_attributes =
- ibus_text.selection_attributes();
- for (size_t i = 0; i < selection_attributes.size(); ++i) {
- IBusAttribute attribute;
- attribute.type = kAttributeSelection;
- attribute.value = 0;
- attribute.start_index = selection_attributes[i].start_index;
- attribute.end_index = selection_attributes[i].end_index;
- AppendIBusAttribute(&attribute_array_writer, attribute);
- }
-
- // Close all writers.
- ibus_attr_list_writer.CloseContainer(&attribute_array_writer);
- ibus_attr_list_writer.CloseAll();
- ibus_text_writer.CloseAll();
-}
-
-void CHROMEOS_EXPORT AppendStringAsIBusText(const std::string& text,
- dbus::MessageWriter* writer) {
- IBusText ibus_text;
- ibus_text.set_text(text);
- AppendIBusText(ibus_text, writer);
-}
-
-bool PopIBusText(dbus::MessageReader* reader, IBusText* ibus_text) {
- IBusObjectReader ibus_text_reader("IBusText", reader);
-
- if (!ibus_text_reader.Init())
- return false;
-
- const base::Value* annotation_value =
- ibus_text_reader.GetAttachment(kAnnotationKey);
- if (annotation_value) {
- std::string annotation;
- if (annotation_value->GetAsString(&annotation))
- ibus_text->set_annotation(annotation);
- }
-
- const base::Value* description_title_value =
- ibus_text_reader.GetAttachment(kDescriptionTitleKey);
- if (description_title_value) {
- std::string description_title;
- if (description_title_value->GetAsString(&description_title))
- ibus_text->set_description_title(description_title);
- }
-
- const base::Value* description_body_value =
- ibus_text_reader.GetAttachment(kDescriptionBodyKey);
- if (description_body_value) {
- std::string description_body;
- if (description_body_value->GetAsString(&description_body))
- ibus_text->set_description_body(description_body);
- }
-
- std::string text;
- if (!ibus_text_reader.PopString(&text)) {
- LOG(ERROR) << "Invalid variant structure[IBusText]: "
- << "1st argument should be string.";
- return false;
- }
-
- ibus_text->set_text(text);
-
- // Start reading IBusAttrList object
- IBusObjectReader ibus_attr_list_reader("IBusAttrList", NULL);
- if (!ibus_text_reader.PopIBusObject(&ibus_attr_list_reader)) {
- LOG(ERROR) << "Invalid variant structure[IBusText]: "
- << "2nd argument should be IBusAttrList.";
- return false;
- }
-
- dbus::MessageReader attribute_array_reader(NULL);
- if (!ibus_attr_list_reader.PopArray(&attribute_array_reader)) {
- LOG(ERROR) << "Invalid variant structure[IBusAttrList]: "
- << "1st argument should be array of IBusAttribute.";
- return false;
- }
-
- std::vector<IBusText::UnderlineAttribute>* underline_attributes =
- ibus_text->mutable_underline_attributes();
-
- std::vector<IBusText::SelectionAttribute>* selection_attributes =
- ibus_text->mutable_selection_attributes();
-
- while (attribute_array_reader.HasMoreData()) {
- IBusAttribute attribute;
- if (!PopIBusAttribute(&attribute_array_reader, &attribute))
- return false;
-
- if (attribute.type == kAttributeUnderline) {
- IBusText::UnderlineAttribute underline_attribute;
- underline_attribute.type =
- static_cast<IBusText::IBusTextUnderlineType>(attribute.value);
- underline_attribute.start_index = attribute.start_index;
- underline_attribute.end_index = attribute.end_index;
- underline_attributes->push_back(underline_attribute);
- } else if (attribute.type == kAttributeSelection) {
- IBusText::SelectionAttribute selection_attribute;
- selection_attribute.start_index = attribute.start_index;
- selection_attribute.end_index = attribute.end_index;
- selection_attributes->push_back(selection_attribute);
- } else {
- DVLOG(1) << "Chrome does not support background attribute.";
- }
- }
-
- return true;
-}
-
-bool CHROMEOS_EXPORT PopStringFromIBusText(dbus::MessageReader* reader,
- std::string* text) {
- IBusText ibus_text;
- if (!PopIBusText(reader, &ibus_text))
- return false;
- *text = ibus_text.text();
- return true;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// IBusText
-IBusText::IBusText()
- : text_("") {
-}
-
-IBusText::~IBusText() {
-}
-
-void IBusText::CopyFrom(const IBusText& obj) {
- text_ = obj.text();
- annotation_ = obj.annotation();
- description_title_ = obj.description_title();
- description_body_ = obj.description_body();
- underline_attributes_ = obj.underline_attributes();
- selection_attributes_ = obj.selection_attributes();
-}
-
-} // namespace chromeos
« no previous file with comments | « chromeos/dbus/ibus/ibus_text.h ('k') | chromeos/dbus/ibus/ibus_text_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698