chromium/ui/ozone/platform/x11/x11_screen_ozone.h

// 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_PLATFORM_X11_X11_SCREEN_OZONE_H_
#define UI_OZONE_PLATFORM_X11_X11_SCREEN_OZONE_H_

#include <memory>
#include <utility>
#include <vector>

#include "base/memory/raw_ptr.h"
#include "base/scoped_observation.h"
#include "ui/base/x/x11_display_manager.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/x/event.h"
#include "ui/ozone/public/platform_screen.h"

#if BUILDFLAG(IS_LINUX)
#include "ui/linux/device_scale_factor_observer.h"
#include "ui/linux/linux_ui.h"
#endif

namespace ui {

class X11WindowManager;

// A PlatformScreen implementation for X11.
class X11ScreenOzone : public PlatformScreen,
                       public x11::EventObserver,
                       public XDisplayManager::Delegate
#if BUILDFLAG(IS_LINUX)
    ,
                       public DeviceScaleFactorObserver
#endif
{};

}  // namespace ui

#endif  // UI_OZONE_PLATFORM_X11_X11_SCREEN_OZONE_H_