chromium/ui/base/x/x11_whole_screen_move_loop.h

// Copyright 2013 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_WHOLE_SCREEN_MOVE_LOOP_H_
#define UI_BASE_X_X11_WHOLE_SCREEN_MOVE_LOOP_H_

#include <stdint.h>

#include <memory>

#include "base/component_export.h"
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "ui/base/x/x11_move_loop.h"
#include "ui/base/x/x11_move_loop_delegate.h"
#include "ui/events/platform/platform_event_dispatcher.h"
#include "ui/gfx/geometry/vector2d_f.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/gfx/native_widget_types.h"
#include "ui/gfx/x/connection.h"

namespace x11 {
class ScopedEventSelector;
}

namespace ui {
class MouseEvent;
class ScopedEventDispatcher;

// Runs a nested run loop and grabs the mouse. This is used to implement
// dragging.
class COMPONENT_EXPORT(UI_BASE_X) X11WholeScreenMoveLoop
    : public X11MoveLoop,
      public ui::PlatformEventDispatcher {};

}  // namespace ui

#endif  // UI_BASE_X_X11_WHOLE_SCREEN_MOVE_LOOP_H_