| 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 "ui/display/manager/display_layout_builder.h" |  | 
|   6  |  | 
|   7 #include <algorithm> |  | 
|   8  |  | 
|   9 namespace display { |  | 
|  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   AddDisplayPlacement(placement); |  | 
|  48   return *this; |  | 
|  49 } |  | 
|  50  |  | 
|  51 DisplayLayoutBuilder& DisplayLayoutBuilder::AddDisplayPlacement( |  | 
|  52     const DisplayPlacement& placement) { |  | 
|  53   layout_->placement_list.push_back(placement); |  | 
|  54   return *this; |  | 
|  55 } |  | 
|  56  |  | 
|  57 DisplayLayoutBuilder& DisplayLayoutBuilder::SetSecondaryPlacement( |  | 
|  58     int64_t secondary_id, |  | 
|  59     DisplayPlacement::Position position, |  | 
|  60     int offset) { |  | 
|  61   layout_->placement_list.clear(); |  | 
|  62   AddDisplayPlacement(secondary_id, layout_->primary_id, position, offset); |  | 
|  63   return *this; |  | 
|  64 } |  | 
|  65  |  | 
|  66 std::unique_ptr<DisplayLayout> DisplayLayoutBuilder::Build() { |  | 
|  67   std::sort(layout_->placement_list.begin(), layout_->placement_list.end(), |  | 
|  68             [](const DisplayPlacement& a, const DisplayPlacement& b) { |  | 
|  69               return a.display_id < b.display_id; |  | 
|  70             }); |  | 
|  71   return std::move(layout_); |  | 
|  72 } |  | 
|  73  |  | 
|  74 }  // namespace display |  | 
| OLD | NEW |