The main advantage of SPDX license identifiers over the traditional license headers is that it's more difficult to overlook inappropriate licenses for kwin, for example GPL 3. We also don't have to copy a lot of boilerplate text. In order to create this change, I ran licensedigger -r -c from the toplevel source directory.
58 lines
1.3 KiB
C++
58 lines
1.3 KiB
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 <KWayland/Client/datadevicemanager.h>
|
|
|
|
#include <QPoint>
|
|
|
|
#include <xcb/xcb.h>
|
|
|
|
namespace KWin
|
|
{
|
|
class Toplevel;
|
|
|
|
namespace Xwl
|
|
{
|
|
enum class DragEventReply;
|
|
|
|
using DnDAction = KWayland::Client::DataDeviceManager::DnDAction;
|
|
|
|
/**
|
|
* 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);
|
|
static DnDAction atomToClientAction(xcb_atom_t atom);
|
|
static xcb_atom_t clientActionToAtom(DnDAction action);
|
|
|
|
virtual bool handleClientMessage(xcb_client_message_event_t *event) = 0;
|
|
virtual DragEventReply moveFilter(Toplevel *target, const QPoint &pos) = 0;
|
|
|
|
virtual bool end() = 0;
|
|
|
|
Q_SIGNALS:
|
|
void finish(Drag *self);
|
|
|
|
private:
|
|
Q_DISABLE_COPY(Drag)
|
|
};
|
|
|
|
} // namespace Xwl
|
|
} // namespace KWin
|
|
|
|
#endif
|