KWin
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
screenshotdbusinterface2.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2010 Martin Gräßlin <mgraesslin@kde.org>
3 SPDX-FileCopyrightText: 2021 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
4
5 SPDX-License-Identifier: GPL-2.0-or-later
6*/
7
8#pragma once
9
10#include "screenshot.h"
11
12#include <QDBusContext>
13#include <QDBusUnixFileDescriptor>
14#include <QObject>
15#include <QVariantMap>
16
17namespace KWin
18{
19
20class ScreenShotEffect;
21class ScreenShotSinkPipe2;
22class ScreenShotSource2;
23
31class ScreenShotDBusInterface2 : public QObject, public QDBusContext
32{
33 Q_OBJECT
34 Q_PROPERTY(int Version READ version CONSTANT)
35
36public:
39
40 int version() const;
41
42public Q_SLOTS:
43 QVariantMap CaptureWindow(const QString &handle, const QVariantMap &options,
44 QDBusUnixFileDescriptor pipe);
45 QVariantMap CaptureActiveWindow(const QVariantMap &options,
46 QDBusUnixFileDescriptor pipe);
47 QVariantMap CaptureArea(int x, int y, int width, int height,
48 const QVariantMap &options,
49 QDBusUnixFileDescriptor pipe);
50 QVariantMap CaptureScreen(const QString &name, const QVariantMap &options,
51 QDBusUnixFileDescriptor pipe);
52 QVariantMap CaptureActiveScreen(const QVariantMap &options,
53 QDBusUnixFileDescriptor pipe);
54 QVariantMap CaptureInteractive(uint kind, const QVariantMap &options,
55 QDBusUnixFileDescriptor pipe);
56 QVariantMap CaptureWorkspace(const QVariantMap &options,
57 QDBusUnixFileDescriptor pipe);
58
59private:
60 void takeScreenShot(Output *screen, ScreenShotFlags flags, ScreenShotSinkPipe2 *sink);
61 void takeScreenShot(const QRect &area, ScreenShotFlags flags, ScreenShotSinkPipe2 *sink);
62 void takeScreenShot(EffectWindow *window, ScreenShotFlags flags, ScreenShotSinkPipe2 *sink);
63
64 void bind(ScreenShotSinkPipe2 *sink, ScreenShotSource2 *source);
65 bool checkPermissions() const;
66
67 ScreenShotEffect *m_effect;
68};
69
70} // namespace KWin
Representation of a window used by/for Effect classes.
QVariantMap CaptureActiveScreen(const QVariantMap &options, QDBusUnixFileDescriptor pipe)
QVariantMap CaptureWorkspace(const QVariantMap &options, QDBusUnixFileDescriptor pipe)
QVariantMap CaptureInteractive(uint kind, const QVariantMap &options, QDBusUnixFileDescriptor pipe)
QVariantMap CaptureScreen(const QString &name, const QVariantMap &options, QDBusUnixFileDescriptor pipe)
QVariantMap CaptureActiveWindow(const QVariantMap &options, QDBusUnixFileDescriptor pipe)
QVariantMap CaptureWindow(const QString &handle, const QVariantMap &options, QDBusUnixFileDescriptor pipe)
QVariantMap CaptureArea(int x, int y, int width, int height, const QVariantMap &options, QDBusUnixFileDescriptor pipe)
ScreenShotDBusInterface2(ScreenShotEffect *effect)
Options * options
Definition main.cpp:73