1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_DISPLAY_MOJOM_DISPLAY_LAYOUT_MOJOM_TRAITS_H_
#define UI_DISPLAY_MOJOM_DISPLAY_LAYOUT_MOJOM_TRAITS_H_
#include <memory>
#include <vector>
#include "ui/display/display_layout.h"
#include "ui/display/mojom/display_layout.mojom.h"
namespace mojo {
template <>
struct EnumTraits<display::mojom::Position,
display::DisplayPlacement::Position> {
static display::mojom::Position ToMojom(
display::DisplayPlacement::Position type);
static bool FromMojom(display::mojom::Position type,
display::DisplayPlacement::Position* output);
};
template <>
struct EnumTraits<display::mojom::OffsetReference,
display::DisplayPlacement::OffsetReference> {
static display::mojom::OffsetReference ToMojom(
display::DisplayPlacement::OffsetReference type);
static bool FromMojom(display::mojom::OffsetReference type,
display::DisplayPlacement::OffsetReference* output);
};
template <>
struct StructTraits<display::mojom::DisplayPlacementDataView,
display::DisplayPlacement> {
static int64_t display_id(const display::DisplayPlacement& placement) {
return placement.display_id;
}
static int64_t parent_display_id(const display::DisplayPlacement& placement) {
return placement.parent_display_id;
}
static display::DisplayPlacement::Position position(
const display::DisplayPlacement& placement) {
return placement.position;
}
static int offset(const display::DisplayPlacement& placement) {
return placement.offset;
}
static display::DisplayPlacement::OffsetReference offset_reference(
const display::DisplayPlacement& placement) {
return placement.offset_reference;
}
static bool Read(display::mojom::DisplayPlacementDataView data,
display::DisplayPlacement* out);
};
template <>
struct StructTraits<display::mojom::DisplayLayoutDataView,
std::unique_ptr<display::DisplayLayout>> {
static bool default_unified(
const std::unique_ptr<display::DisplayLayout>& layout) {
return layout->default_unified;
}
static int64_t primary_display_id(
const std::unique_ptr<display::DisplayLayout>& layout) {
return layout->primary_id;
}
static const std::vector<display::DisplayPlacement>& placement_list(
const std::unique_ptr<display::DisplayLayout>& layout) {
return layout->placement_list;
}
static bool Read(display::mojom::DisplayLayoutDataView data,
std::unique_ptr<display::DisplayLayout>* out);
};
} // namespace mojo
#endif // UI_DISPLAY_MOJOM_DISPLAY_LAYOUT_MOJOM_TRAITS_H_
|