Index: ash/public/interfaces/shelf_enum_traits.h |
diff --git a/ash/public/interfaces/shelf_enum_traits.h b/ash/public/interfaces/shelf_enum_traits.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4d5d1cd9b475f79055c8c8158f396c9404834bcc |
--- /dev/null |
+++ b/ash/public/interfaces/shelf_enum_traits.h |
@@ -0,0 +1,88 @@ |
+// Copyright 2016 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. |
+ |
+#ifndef ASH_PUBLIC_INTERFACES_SHELF_ENUM_TRAITS_H_ |
+#define ASH_PUBLIC_INTERFACES_SHELF_ENUM_TRAITS_H_ |
+ |
+#include "ash/common/shelf/shelf_types.h" |
+#include "ash/public/interfaces/shelf.mojom.h" |
+ |
+namespace mojo { |
+ |
+template <> |
+struct EnumTraits<ash::mojom::ShelfAlignment, ash::ShelfAlignment> { |
+ static ash::mojom::ShelfAlignment ToMojom(ash::ShelfAlignment input) { |
+ switch (input) { |
+ case ash::SHELF_ALIGNMENT_BOTTOM: |
+ return ash::mojom::ShelfAlignment::BOTTOM; |
+ case ash::SHELF_ALIGNMENT_LEFT: |
+ return ash::mojom::ShelfAlignment::LEFT; |
+ case ash::SHELF_ALIGNMENT_RIGHT: |
+ return ash::mojom::ShelfAlignment::RIGHT; |
+ case ash::SHELF_ALIGNMENT_BOTTOM_LOCKED: |
+ return ash::mojom::ShelfAlignment::BOTTOM_LOCKED; |
+ } |
+ NOTREACHED(); |
+ return ash::mojom::ShelfAlignment::BOTTOM; |
+ } |
+ |
+ static bool FromMojom(ash::mojom::ShelfAlignment input, |
+ ash::ShelfAlignment* out) { |
+ switch (input) { |
+ case ash::mojom::ShelfAlignment::BOTTOM: |
+ *out = ash::SHELF_ALIGNMENT_BOTTOM; |
+ return true; |
+ case ash::mojom::ShelfAlignment::LEFT: |
+ *out = ash::SHELF_ALIGNMENT_LEFT; |
+ return true; |
+ case ash::mojom::ShelfAlignment::RIGHT: |
+ *out = ash::SHELF_ALIGNMENT_RIGHT; |
+ return true; |
+ case ash::mojom::ShelfAlignment::BOTTOM_LOCKED: |
+ *out = ash::SHELF_ALIGNMENT_BOTTOM_LOCKED; |
+ return true; |
+ } |
+ NOTREACHED(); |
+ return false; |
+ } |
+}; |
+ |
+template <> |
+struct EnumTraits<ash::mojom::ShelfAutoHideBehavior, |
+ ash::ShelfAutoHideBehavior> { |
+ static ash::mojom::ShelfAutoHideBehavior ToMojom( |
+ ash::ShelfAutoHideBehavior input) { |
+ switch (input) { |
+ case ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS: |
+ return ash::mojom::ShelfAutoHideBehavior::ALWAYS; |
+ case ash::SHELF_AUTO_HIDE_BEHAVIOR_NEVER: |
+ return ash::mojom::ShelfAutoHideBehavior::NEVER; |
+ case ash::SHELF_AUTO_HIDE_ALWAYS_HIDDEN: |
+ return ash::mojom::ShelfAutoHideBehavior::HIDDEN; |
+ } |
+ NOTREACHED(); |
+ return ash::mojom::ShelfAutoHideBehavior::NEVER; |
+ } |
+ |
+ static bool FromMojom(ash::mojom::ShelfAutoHideBehavior input, |
+ ash::ShelfAutoHideBehavior* out) { |
+ switch (input) { |
+ case ash::mojom::ShelfAutoHideBehavior::ALWAYS: |
+ *out = ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS; |
+ return true; |
+ case ash::mojom::ShelfAutoHideBehavior::NEVER: |
+ *out = ash::SHELF_AUTO_HIDE_BEHAVIOR_NEVER; |
+ return true; |
+ case ash::mojom::ShelfAutoHideBehavior::HIDDEN: |
+ *out = ash::SHELF_AUTO_HIDE_ALWAYS_HIDDEN; |
+ return true; |
+ } |
+ NOTREACHED(); |
+ return false; |
+ } |
+}; |
+ |
+} // namespace mojo |
+ |
+#endif // ASH_PUBLIC_INTERFACES_SHELF_ENUM_TRAITS_H_ |