kwin/src/xwl/drag.h
Nils Fenner aaa429ee0a Merge Toplevel into AbstractClient
References issue #81
2022-04-18 07:42:11 +00:00

51 lines
939 B
C++

/*
KWin - the KDE window manager
This file is part of the KDE project.
SPDX-FileCopyrightText: 2019 Roman Gilg <subdiff@gmail.com>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef KWIN_XWL_DRAG
#define KWIN_XWL_DRAG
#include <QObject>
#include <QPoint>
#include <xcb/xcb.h>
namespace KWin
{
class AbstractClient;
namespace Xwl
{
enum class DragEventReply;
/**
* An ongoing drag operation.
*/
class Drag : public QObject
{
Q_OBJECT
public:
explicit Drag(QObject *parent = nullptr);
~Drag() override;
static void sendClientMessage(xcb_window_t target, xcb_atom_t type, xcb_client_message_data_t *data);
virtual bool handleClientMessage(xcb_client_message_event_t *event) = 0;
virtual DragEventReply moveFilter(AbstractClient *target, const QPoint &pos) = 0;
Q_SIGNALS:
void finish(Drag *self);
private:
Q_DISABLE_COPY(Drag)
};
} // namespace Xwl
} // namespace KWin
#endif