summaryrefslogtreecommitdiffstats
path: root/chromium/ui/display/screen_info.cc
blob: bd908ac3264e0e407336ed4aa344b89db7f78815 (plain)
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
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include <inttypes.h>

#include "ui/display/screen_info.h"

namespace display {

namespace {

// Returns a debug string for the orientation type.
const char* ToOrientationString(mojom::ScreenOrientation orientaiton_type) {
  switch (orientaiton_type) {
    case mojom::ScreenOrientation::kUndefined:
      return "Undefined";
    case mojom::ScreenOrientation::kPortraitPrimary:
      return "PortraitPrimary";
    case mojom::ScreenOrientation::kPortraitSecondary:
      return "PortraitSecondary";
    case mojom::ScreenOrientation::kLandscapePrimary:
      return "LandscapePrimary";
    case mojom::ScreenOrientation::kLandscapeSecondary:
      return "LandscapeSecondary";
  }
  NOTREACHED();
  return "unknown";
}

}  // namespace

ScreenInfo::ScreenInfo() = default;
ScreenInfo::ScreenInfo(const ScreenInfo& other) = default;
ScreenInfo::~ScreenInfo() = default;
ScreenInfo& ScreenInfo::operator=(const ScreenInfo& other) = default;

bool ScreenInfo::operator==(const ScreenInfo& other) const {
  return device_scale_factor == other.device_scale_factor &&
         display_color_spaces == other.display_color_spaces &&
         depth == other.depth &&
         depth_per_component == other.depth_per_component &&
         is_monochrome == other.is_monochrome &&
         display_frequency == other.display_frequency && rect == other.rect &&
         available_rect == other.available_rect &&
         orientation_type == other.orientation_type &&
         orientation_angle == other.orientation_angle &&
         is_extended == other.is_extended && is_primary == other.is_primary &&
         is_internal == other.is_internal && label == other.label &&
         display_id == other.display_id;
}

bool ScreenInfo::operator!=(const ScreenInfo& other) const {
  return !operator==(other);
}

std::string ScreenInfo::ToString() const {
  return base::StringPrintf(
      "ScreenInfo[%" PRId64 "] \"%s\" bounds=[%s] avail=[%s] scale=%g %s %s %s",
      display_id, label.c_str(), rect.ToString().c_str(),
      available_rect.ToString().c_str(), device_scale_factor,
      ToOrientationString(orientation_type),
      is_internal ? "internal" : "external",
      is_primary ? "primary" : "secondary");
}

}  // namespace display