kwin/src/wayland/slide_interface.h

65 lines
1.5 KiB
C
Raw Normal View History

/*
SPDX-FileCopyrightText: 2015 Marco Martin <notmart@gmail.com>
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
2021-03-10 16:08:30 +00:00
#pragma once
#include <QObject>
2020-04-29 14:56:38 +00:00
#include <KWaylandServer/kwaylandserver_export.h>
struct wl_resource;
2020-04-29 14:56:38 +00:00
namespace KWaylandServer
{
class Display;
class SlideManagerInterfacePrivate;
class SlideInterfacePrivate;
class KWAYLANDSERVER_EXPORT SlideManagerInterface : public QObject
{
Q_OBJECT
public:
explicit SlideManagerInterface(Display *display, QObject *parent = nullptr);
~SlideManagerInterface() override;
void remove();
private:
QScopedPointer<SlideManagerInterfacePrivate> d;
};
class KWAYLANDSERVER_EXPORT SlideInterface : public QObject
{
Q_OBJECT
public:
enum Location {
Left = 0, /**< Slide from the left edge of the screen */
Top = 1, /**< Slide from the top edge of the screen */
Right = 2, /**< Slide from the bottom edge of the screen */
2021-04-29 09:45:00 +00:00
Bottom = 3, /**< Slide from the bottom edge of the screen */
};
~SlideInterface() override;
/**
* @returns the location the window will be slided from
*/
Location location() const;
/**
* @returns the offset from the screen edge the window will
* be slided from
*/
qint32 offset() const;
private:
explicit SlideInterface(wl_resource *resource);
friend class SlideManagerInterfacePrivate;
QScopedPointer<SlideInterfacePrivate> d;
};
}