blob: b58d8965af1281aa2e63acd5bd761f11f450e969 [file] [log] [blame]
// Copyright 2021 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 "third_party/blink/public/common/widget/screen_infos.h"
namespace blink {
ScreenInfos::ScreenInfos() = default;
ScreenInfos::ScreenInfos(const ScreenInfo& screen_info)
: screen_infos{screen_info}, current_display_id(screen_info.display_id) {}
ScreenInfos::ScreenInfos(const ScreenInfos& other) = default;
ScreenInfos::~ScreenInfos() = default;
ScreenInfos& ScreenInfos::operator=(const ScreenInfos& other) = default;
bool ScreenInfos::operator==(const ScreenInfos& other) const {
return screen_infos == other.screen_infos &&
current_display_id == other.current_display_id;
}
bool ScreenInfos::operator!=(const ScreenInfos& other) const {
return !operator==(other);
}
ScreenInfo& ScreenInfos::mutable_current() {
return const_cast<ScreenInfo&>(
const_cast<const ScreenInfos*>(this)->current());
}
const ScreenInfo& ScreenInfos::current() const {
const auto& current_screen_info = base::ranges::find_if(
screen_infos,
[&](const ScreenInfo& s) { return s.display_id == current_display_id; });
CHECK(current_screen_info != screen_infos.end());
return *current_screen_info;
}
} // namespace blink