Index: services/ui/public/interfaces/ime/ime_struct_traits.h |
diff --git a/services/ui/public/interfaces/ime/ime_struct_traits.h b/services/ui/public/interfaces/ime/ime_struct_traits.h |
index 70af004debc880b86b05d497c8f7d12c419f920b..c87e961b02ffd4dab0b56564924bf5d087c663b7 100644 |
--- a/services/ui/public/interfaces/ime/ime_struct_traits.h |
+++ b/services/ui/public/interfaces/ime/ime_struct_traits.h |
@@ -7,6 +7,7 @@ |
#include "base/strings/utf_string_conversions.h" |
#include "services/ui/public/interfaces/ime/ime.mojom-shared.h" |
+#include "ui/base/ime/candidate_window.h" |
#include "ui/base/ime/composition_text.h" |
#include "ui/base/ime/composition_underline.h" |
#include "ui/base/ime/text_input_mode.h" |
@@ -15,6 +16,64 @@ |
namespace mojo { |
template <> |
+struct StructTraits<ui::mojom::CandidateWindowPropertiesDataView, |
+ ui::CandidateWindow::CandidateWindowProperty> { |
+ static int32_t page_size( |
+ const ui::CandidateWindow::CandidateWindowProperty& p) { |
+ return p.page_size; |
+ } |
+ static bool vertical(const ui::CandidateWindow::CandidateWindowProperty& p) { |
+ return p.is_vertical; |
+ } |
+ static std::string auxiliary_text( |
+ const ui::CandidateWindow::CandidateWindowProperty& p) { |
+ return p.auxiliary_text; |
+ } |
+ static bool auxiliary_text_visible( |
+ const ui::CandidateWindow::CandidateWindowProperty& p) { |
+ return p.is_auxiliary_text_visible; |
+ } |
+ static int32_t cursor_position( |
+ const ui::CandidateWindow::CandidateWindowProperty& p) { |
+ return p.cursor_position; |
+ } |
+ static bool cursor_visible( |
+ const ui::CandidateWindow::CandidateWindowProperty& p) { |
+ return p.is_cursor_visible; |
+ } |
+ static ui::mojom::CandidateWindowPosition window_position( |
+ const ui::CandidateWindow::CandidateWindowProperty& p) { |
+ return p.show_window_at_composition |
+ ? ui::mojom::CandidateWindowPosition::COMPOSITION |
+ : ui::mojom::CandidateWindowPosition::CURSOR; |
+ } |
+ static bool Read(ui::mojom::CandidateWindowPropertiesDataView data, |
+ ui::CandidateWindow::CandidateWindowProperty* out); |
+}; |
+ |
+template <> |
+struct StructTraits<ui::mojom::CandidateWindowEntryDataView, |
+ ui::CandidateWindow::Entry> { |
+ static std::string value(const ui::CandidateWindow::Entry& e) { |
+ return base::UTF16ToUTF8(e.value); |
+ } |
+ static std::string label(const ui::CandidateWindow::Entry& e) { |
+ return base::UTF16ToUTF8(e.label); |
+ } |
+ static std::string annotation(const ui::CandidateWindow::Entry& e) { |
+ return base::UTF16ToUTF8(e.annotation); |
+ } |
+ static std::string description_title(const ui::CandidateWindow::Entry& e) { |
+ return base::UTF16ToUTF8(e.description_title); |
+ } |
+ static std::string description_body(const ui::CandidateWindow::Entry& e) { |
+ return base::UTF16ToUTF8(e.description_body); |
+ } |
+ static bool Read(ui::mojom::CandidateWindowEntryDataView data, |
+ ui::CandidateWindow::Entry* out); |
+}; |
+ |
+template <> |
struct StructTraits<ui::mojom::CompositionUnderlineDataView, |
ui::CompositionUnderline> { |
static uint32_t start_offset(const ui::CompositionUnderline& c) { |