123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- // 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.
- #include "ui/display/display_layout_builder.h"
- #include <algorithm>
- #include "ui/display/display.h"
- #include "ui/display/util/display_util.h"
- namespace display {
- DisplayLayoutBuilder::DisplayLayoutBuilder(const DisplayLayout& layout)
- : layout_(layout.Copy()) {}
- DisplayLayoutBuilder::DisplayLayoutBuilder(int64_t primary_id)
- : layout_(new DisplayLayout) {
- layout_->primary_id = primary_id;
- }
- DisplayLayoutBuilder::~DisplayLayoutBuilder() {}
- DisplayLayoutBuilder& DisplayLayoutBuilder::SetDefaultUnified(
- bool default_unified) {
- layout_->default_unified = default_unified;
- return *this;
- }
- DisplayLayoutBuilder& DisplayLayoutBuilder::ClearPlacements() {
- layout_->placement_list.clear();
- return *this;
- }
- DisplayLayoutBuilder& DisplayLayoutBuilder::AddDisplayPlacement(
- int64_t display_id,
- int64_t parent_display_id,
- DisplayPlacement::Position position,
- int offset) {
- DisplayPlacement placement;
- placement.position = position;
- placement.offset = offset;
- placement.display_id = display_id;
- placement.parent_display_id = parent_display_id;
- AddDisplayPlacement(placement);
- return *this;
- }
- DisplayLayoutBuilder& DisplayLayoutBuilder::AddDisplayPlacement(
- const DisplayPlacement& placement) {
- layout_->placement_list.push_back(placement);
- return *this;
- }
- DisplayLayoutBuilder& DisplayLayoutBuilder::SetSecondaryPlacement(
- int64_t secondary_id,
- DisplayPlacement::Position position,
- int offset) {
- layout_->placement_list.clear();
- AddDisplayPlacement(secondary_id, layout_->primary_id, position, offset);
- return *this;
- }
- std::unique_ptr<DisplayLayout> DisplayLayoutBuilder::Build() {
- std::sort(layout_->placement_list.begin(), layout_->placement_list.end(),
- [](const DisplayPlacement& a, const DisplayPlacement& b) {
- return CompareDisplayIds(a.display_id, b.display_id);
- });
- return std::move(layout_);
- }
- } // namespace display
|