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

Unified Diff: ui/display/mojo/display_layout_struct_traits.cc

Issue 2661663002: Add DisplayPlacement/Layout mojoms + StructTraits. (Closed)
Patch Set: Remove empty comments. Created 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/display/mojo/display_layout_struct_traits.h ('k') | ui/display/mojo/display_struct_traits.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/display/mojo/display_layout_struct_traits.cc
diff --git a/ui/display/mojo/display_layout_struct_traits.cc b/ui/display/mojo/display_layout_struct_traits.cc
new file mode 100644
index 0000000000000000000000000000000000000000..192f1f59168882c15aba16855f32873423537645
--- /dev/null
+++ b/ui/display/mojo/display_layout_struct_traits.cc
@@ -0,0 +1,110 @@
+// Copyright 2017 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 "ui/display/mojo/display_layout_struct_traits.h"
+
+namespace mojo {
+
+display::mojom::Position
+EnumTraits<display::mojom::Position, display::DisplayPlacement::Position>::
+ ToMojom(display::DisplayPlacement::Position rotation) {
+ switch (rotation) {
+ case display::DisplayPlacement::TOP:
+ return display::mojom::Position::TOP;
+ case display::DisplayPlacement::RIGHT:
+ return display::mojom::Position::RIGHT;
+ case display::DisplayPlacement::BOTTOM:
+ return display::mojom::Position::BOTTOM;
+ case display::DisplayPlacement::LEFT:
+ return display::mojom::Position::LEFT;
+ }
+ NOTREACHED();
+ return display::mojom::Position::TOP;
+}
+
+bool EnumTraits<display::mojom::Position, display::DisplayPlacement::Position>::
+ FromMojom(display::mojom::Position rotation,
+ display::DisplayPlacement::Position* out) {
+ switch (rotation) {
+ case display::mojom::Position::TOP:
+ *out = display::DisplayPlacement::TOP;
+ return true;
+ case display::mojom::Position::RIGHT:
+ *out = display::DisplayPlacement::RIGHT;
+ return true;
+ case display::mojom::Position::BOTTOM:
+ *out = display::DisplayPlacement::BOTTOM;
+ return true;
+ case display::mojom::Position::LEFT:
+ *out = display::DisplayPlacement::LEFT;
+ return true;
+ }
+ return false;
+}
+
+display::mojom::OffsetReference
+EnumTraits<display::mojom::OffsetReference,
+ display::DisplayPlacement::OffsetReference>::
+ ToMojom(display::DisplayPlacement::OffsetReference rotation) {
+ switch (rotation) {
+ case display::DisplayPlacement::TOP_LEFT:
+ return display::mojom::OffsetReference::TOP_LEFT;
+ case display::DisplayPlacement::BOTTOM_RIGHT:
+ return display::mojom::OffsetReference::BOTTOM_RIGHT;
+ }
+ NOTREACHED();
+ return display::mojom::OffsetReference::TOP_LEFT;
+}
+
+bool EnumTraits<display::mojom::OffsetReference,
+ display::DisplayPlacement::OffsetReference>::
+ FromMojom(display::mojom::OffsetReference rotation,
+ display::DisplayPlacement::OffsetReference* out) {
+ switch (rotation) {
+ case display::mojom::OffsetReference::TOP_LEFT:
+ *out = display::DisplayPlacement::TOP_LEFT;
+ return true;
+ case display::mojom::OffsetReference::BOTTOM_RIGHT:
+ *out = display::DisplayPlacement::BOTTOM_RIGHT;
+ return true;
+ }
+ return false;
+}
+
+bool StructTraits<display::mojom::DisplayPlacementDataView,
+ display::DisplayPlacement>::
+ Read(display::mojom::DisplayPlacementDataView data,
+ display::DisplayPlacement* out) {
+ out->display_id = data.display_id();
+ out->parent_display_id = data.parent_display_id();
+ out->offset = data.offset();
+
+ if (!data.ReadPosition(&out->position))
+ return false;
+
+ if (!data.ReadOffsetReference(&out->offset_reference))
+ return false;
+
+ return true;
+}
+
+bool StructTraits<display::mojom::DisplayLayoutDataView,
+ std::unique_ptr<display::DisplayLayout>>::
+ Read(display::mojom::DisplayLayoutDataView data,
+ std::unique_ptr<display::DisplayLayout>* out) {
+ auto display_layout = base::MakeUnique<display::DisplayLayout>();
+
+ if (!data.ReadPlacementList(&display_layout->placement_list))
+ return false;
+
+ display_layout->mirrored = data.mirrored();
+ display_layout->default_unified = data.default_unified();
+ display_layout->primary_id = data.primary_display_id();
+
+ *out = std::move(display_layout);
+
+ return true;
+}
+
+} // namespace mojo
« no previous file with comments | « ui/display/mojo/display_layout_struct_traits.h ('k') | ui/display/mojo/display_struct_traits.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698