// Copyright 2019 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_BASE_X_X11_DISPLAY_MANAGER_H_ #define UI_BASE_X_X11_DISPLAY_MANAGER_H_ #include <memory> #include <vector> #include "base/cancelable_callback.h" #include "base/component_export.h" #include "base/memory/raw_ptr.h" #include "ui/base/x/x11_workspace_handler.h" #include "ui/display/display.h" #include "ui/display/display_change_notifier.h" #include "ui/gfx/geometry/point.h" #include "ui/gfx/x/event.h" namespace views { class DesktopScreenX11Test; } namespace ui { class X11ScreenOzoneTest; //////////////////////////////////////////////////////////////////////////////// // XDisplayManager class // // Responsible for fetching and maintaining list of |display::Display|s // representing X11 screens connected to the system. XRandR extension is used // when version >= 1.3 is available, otherwise it falls back to // |DefaultScreenOfDisplay| Xlib API. // // Scale Factor information and simple hooks are delegated to API clients // through |XDisplayManager::Delegate| interface. To get notifications about // dynamic display changes, clients must register |DisplayObserver| instances // and feed |XDisplayManager| with |x11::Event|s. // // All bounds and size values are assumed to be expressed in pixels. class COMPONENT_EXPORT(UI_BASE_X) XDisplayManager : public X11WorkspaceHandler::Delegate { … }; class COMPONENT_EXPORT(UI_BASE_X) XDisplayManager::Delegate { … }; } // namespace ui #endif // UI_BASE_X_X11_DISPLAY_MANAGER_H_