// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_OZONE_PUBLIC_PLATFORM_SCREEN_H_ #define UI_OZONE_PUBLIC_PLATFORM_SCREEN_H_ #include <optional> #include <set> #include <string> #include <vector> #include "base/component_export.h" #include "base/values.h" #include "build/chromeos_buildflags.h" #include "ui/gfx/gpu_extra_info.h" #include "ui/gfx/native_widget_types.h" namespace base { class TimeDelta; } // namespace base namespace display { class Display; class DisplayObserver; enum class TabletState; } // namespace display namespace gfx { class Point; class Rect; } // namespace gfx namespace ui { // PlatformScreen is an abstract base class for an interface to an Ozone // platform's functionality exposed to Chrome via display::Screen. // // Additionally, may notify DisplayObservers with global workspace changes. // // Recall that in Chrome, a |Screen| is the union of all attached |Display| // instances. The |Screen|'s coordinate system is in DIP pixels (so that // it can reasonably support |Display|s of differing pixel densities.) The // |Screen|'s origin is the top-left corner of the primary |Display| in the // |Screen|. Coordinates increase down and to the right. // // TODO(rjkroege): Add ascii art? class COMPONENT_EXPORT(OZONE_BASE) PlatformScreen { … }; } // namespace ui #endif // UI_OZONE_PUBLIC_PLATFORM_SCREEN_H_