| OLD | NEW |
| (Empty) |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "ash/display/display_layout_builder.h" | |
| 6 | |
| 7 #include <algorithm> | |
| 8 | |
| 9 namespace ash { | |
| 10 | |
| 11 DisplayLayoutBuilder::DisplayLayoutBuilder(const DisplayLayout& layout) | |
| 12 : layout_(layout.Copy()) {} | |
| 13 | |
| 14 DisplayLayoutBuilder::DisplayLayoutBuilder(int64_t primary_id) | |
| 15 : layout_(new DisplayLayout) { | |
| 16 layout_->primary_id = primary_id; | |
| 17 } | |
| 18 | |
| 19 DisplayLayoutBuilder::~DisplayLayoutBuilder() {} | |
| 20 | |
| 21 DisplayLayoutBuilder& DisplayLayoutBuilder::SetDefaultUnified( | |
| 22 bool default_unified) { | |
| 23 layout_->default_unified = default_unified; | |
| 24 return *this; | |
| 25 } | |
| 26 | |
| 27 DisplayLayoutBuilder& DisplayLayoutBuilder::SetMirrored(bool mirrored) { | |
| 28 layout_->mirrored = mirrored; | |
| 29 return *this; | |
| 30 } | |
| 31 | |
| 32 DisplayLayoutBuilder& DisplayLayoutBuilder::ClearPlacements() { | |
| 33 layout_->placement_list.clear(); | |
| 34 return *this; | |
| 35 } | |
| 36 | |
| 37 DisplayLayoutBuilder& DisplayLayoutBuilder::AddDisplayPlacement( | |
| 38 int64_t display_id, | |
| 39 int64_t parent_display_id, | |
| 40 DisplayPlacement::Position position, | |
| 41 int offset) { | |
| 42 DisplayPlacement placement; | |
| 43 placement.position = position; | |
| 44 placement.offset = offset; | |
| 45 placement.display_id = display_id; | |
| 46 placement.parent_display_id = parent_display_id; | |
| 47 layout_->placement_list.push_back(placement); | |
| 48 return *this; | |
| 49 } | |
| 50 | |
| 51 DisplayLayoutBuilder& DisplayLayoutBuilder::SetSecondaryPlacement( | |
| 52 int64_t secondary_id, | |
| 53 DisplayPlacement::Position position, | |
| 54 int offset) { | |
| 55 layout_->placement_list.clear(); | |
| 56 AddDisplayPlacement(secondary_id, layout_->primary_id, position, offset); | |
| 57 return *this; | |
| 58 } | |
| 59 | |
| 60 scoped_ptr<DisplayLayout> DisplayLayoutBuilder::Build() { | |
| 61 std::sort(layout_->placement_list.begin(), layout_->placement_list.end(), | |
| 62 [](const DisplayPlacement& a, const DisplayPlacement& b) { | |
| 63 return a.display_id < b.display_id; | |
| 64 }); | |
| 65 return std::move(layout_); | |
| 66 } | |
| 67 | |
| 68 } // namespace ash | |
| OLD | NEW |