Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(804)

Side by Side Diff: ui/display/manager/display_layout.cc

Issue 2314203002: Move DisplayList to display; add ScreenBase. (Closed)
Patch Set: Update unit test namespace. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/display/manager/display_layout.h ('k') | ui/display/manager/display_layout_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/display/manager/display_layout.h" 5 #include "ui/display/manager/display_layout.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <sstream> 9 #include <sstream>
10 10
(...skipping 18 matching lines...) Expand all
29 // to change this value in case to support even larger displays. 29 // to change this value in case to support even larger displays.
30 const int kMaxValidOffset = 10000; 30 const int kMaxValidOffset = 10000;
31 31
32 bool IsIdInList(int64_t id, const DisplayIdList& list) { 32 bool IsIdInList(int64_t id, const DisplayIdList& list) {
33 const auto iter = 33 const auto iter =
34 std::find_if(list.begin(), list.end(), 34 std::find_if(list.begin(), list.end(),
35 [id](int64_t display_id) { return display_id == id; }); 35 [id](int64_t display_id) { return display_id == id; });
36 return iter != list.end(); 36 return iter != list.end();
37 } 37 }
38 38
39 Display* FindDisplayById(DisplayList* display_list, int64_t id) { 39 Display* FindDisplayById(Displays* display_list, int64_t id) {
40 auto iter = 40 auto iter =
41 std::find_if(display_list->begin(), display_list->end(), 41 std::find_if(display_list->begin(), display_list->end(),
42 [id](const Display& display) { return display.id() == id; }); 42 [id](const Display& display) { return display.id() == id; });
43 return &(*iter); 43 return &(*iter);
44 } 44 }
45 45
46 } // namespace 46 } // namespace
47 47
48 //////////////////////////////////////////////////////////////////////////////// 48 ////////////////////////////////////////////////////////////////////////////////
49 // DisplayPlacement 49 // DisplayPlacement
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 //////////////////////////////////////////////////////////////////////////////// 175 ////////////////////////////////////////////////////////////////////////////////
176 // DisplayLayout 176 // DisplayLayout
177 177
178 DisplayLayout::DisplayLayout() 178 DisplayLayout::DisplayLayout()
179 : mirrored(false), 179 : mirrored(false),
180 default_unified(true), 180 default_unified(true),
181 primary_id(Display::kInvalidDisplayID) {} 181 primary_id(Display::kInvalidDisplayID) {}
182 182
183 DisplayLayout::~DisplayLayout() {} 183 DisplayLayout::~DisplayLayout() {}
184 184
185 void DisplayLayout::ApplyToDisplayList(DisplayList* display_list, 185 void DisplayLayout::ApplyToDisplayList(Displays* display_list,
186 std::vector<int64_t>* updated_ids, 186 std::vector<int64_t>* updated_ids,
187 int minimum_offset_overlap) const { 187 int minimum_offset_overlap) const {
188 // Layout from primary, then dependent displays. 188 // Layout from primary, then dependent displays.
189 std::set<int64_t> parents; 189 std::set<int64_t> parents;
190 parents.insert(primary_id); 190 parents.insert(primary_id);
191 while (parents.size()) { 191 while (parents.size()) {
192 int64_t parent_id = *parents.begin(); 192 int64_t parent_id = *parents.begin();
193 parents.erase(parent_id); 193 parents.erase(parent_id);
194 for (const DisplayPlacement& placement : placement_list) { 194 for (const DisplayPlacement& placement : placement_list) {
195 if (placement.parent_display_id == parent_id) { 195 if (placement.parent_display_id == parent_id) {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 std::find_if(placement_list.begin(), placement_list.end(), 303 std::find_if(placement_list.begin(), placement_list.end(),
304 [display_id](const DisplayPlacement& placement) { 304 [display_id](const DisplayPlacement& placement) {
305 return placement.display_id == display_id; 305 return placement.display_id == display_id;
306 }); 306 });
307 return (iter == placement_list.end()) ? DisplayPlacement() 307 return (iter == placement_list.end()) ? DisplayPlacement()
308 : DisplayPlacement(*iter); 308 : DisplayPlacement(*iter);
309 } 309 }
310 310
311 // static 311 // static
312 bool DisplayLayout::ApplyDisplayPlacement(const DisplayPlacement& placement, 312 bool DisplayLayout::ApplyDisplayPlacement(const DisplayPlacement& placement,
313 DisplayList* display_list, 313 Displays* display_list,
314 int minimum_offset_overlap) { 314 int minimum_offset_overlap) {
315 const Display& parent_display = 315 const Display& parent_display =
316 *FindDisplayById(display_list, placement.parent_display_id); 316 *FindDisplayById(display_list, placement.parent_display_id);
317 DCHECK(parent_display.is_valid()); 317 DCHECK(parent_display.is_valid());
318 Display* target_display = FindDisplayById(display_list, placement.display_id); 318 Display* target_display = FindDisplayById(display_list, placement.display_id);
319 gfx::Rect old_bounds(target_display->bounds()); 319 gfx::Rect old_bounds(target_display->bounds());
320 DCHECK(target_display); 320 DCHECK(target_display);
321 321
322 const gfx::Rect& parent_bounds = parent_display.bounds(); 322 const gfx::Rect& parent_bounds = parent_display.bounds();
323 const gfx::Rect& target_bounds = target_display->bounds(); 323 const gfx::Rect& target_bounds = target_display->bounds();
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 363
364 gfx::Insets insets = target_display->GetWorkAreaInsets(); 364 gfx::Insets insets = target_display->GetWorkAreaInsets();
365 target_display->set_bounds( 365 target_display->set_bounds(
366 gfx::Rect(new_target_origin, target_bounds.size())); 366 gfx::Rect(new_target_origin, target_bounds.size()));
367 target_display->UpdateWorkAreaFromInsets(insets); 367 target_display->UpdateWorkAreaFromInsets(insets);
368 368
369 return old_bounds != target_display->bounds(); 369 return old_bounds != target_display->bounds();
370 } 370 }
371 371
372 } // namespace display 372 } // namespace display
OLDNEW
« no previous file with comments | « ui/display/manager/display_layout.h ('k') | ui/display/manager/display_layout_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698