parent
38fae969a9
commit
e84d5bb666
7 changed files with 135 additions and 0 deletions
@ -0,0 +1 @@ |
||||
build |
||||
@ -0,0 +1,36 @@ |
||||
# SPDX-FileCopyrightText: None |
||||
# SPDX-License-Identifier: CC0-1.0 |
||||
|
||||
cmake_minimum_required(VERSION 3.20) |
||||
project(quick-effect) |
||||
|
||||
set(KF6_MIN_VERSION "6.0.0") |
||||
|
||||
find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE) |
||||
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) |
||||
|
||||
include(FeatureSummary) |
||||
include(KDEInstallDirs) |
||||
include(KDECMakeSettings) |
||||
include(KDECompilerSettings NO_POLICY_SCOPE) |
||||
|
||||
find_package(Qt6 CONFIG REQUIRED COMPONENTS |
||||
Core |
||||
Widgets |
||||
) |
||||
|
||||
find_package(KWin REQUIRED COMPONENTS |
||||
kwin |
||||
) |
||||
|
||||
kcoreaddons_add_plugin(eventlistener INSTALL_NAMESPACE "kwin/plugins") |
||||
target_sources(eventlistener PRIVATE |
||||
main.cpp |
||||
eventlistener.cpp |
||||
) |
||||
|
||||
target_link_libraries(eventlistener PRIVATE |
||||
KWin::kwin |
||||
) |
||||
|
||||
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) |
||||
@ -0,0 +1,34 @@ |
||||
/*
|
||||
SPDX-FileCopyrightText: 2024 Vlad Zahorodnii <vlad.zahorodnii@kde.org> |
||||
|
||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL |
||||
*/ |
||||
|
||||
#include "eventlistener.h" |
||||
#include "kwin/input.h" |
||||
#include "kwin/input_event.h" |
||||
|
||||
#include <QDebug> |
||||
|
||||
namespace KWin |
||||
{ |
||||
|
||||
EventListener::EventListener() |
||||
{ |
||||
qDebug() << "Loaded demo event listener plugin"; |
||||
input()->installInputEventSpy(this); |
||||
} |
||||
|
||||
void EventListener::keyEvent(KeyEvent *event) |
||||
{ |
||||
qDebug() << event; |
||||
} |
||||
|
||||
void EventListener::pointerEvent(MouseEvent *event) |
||||
{ |
||||
qDebug() << event; |
||||
} |
||||
|
||||
} // namespace KWin
|
||||
|
||||
#include "moc_eventlistener.cpp" |
||||
@ -0,0 +1,26 @@ |
||||
/*
|
||||
SPDX-FileCopyrightText: 2024 Vlad Zahorodnii <vlad.zahorodnii@kde.org> |
||||
|
||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL |
||||
*/ |
||||
|
||||
#pragma once |
||||
|
||||
#include "kwin/plugin.h" |
||||
#include "kwin/input_event_spy.h" |
||||
|
||||
namespace KWin |
||||
{ |
||||
|
||||
class EventListener : public Plugin, public InputEventSpy |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
EventListener(); |
||||
|
||||
void keyEvent(KeyEvent *event) override; |
||||
void pointerEvent(MouseEvent *event) override; |
||||
}; |
||||
|
||||
} // namespace KWin
|
||||
@ -0,0 +1,31 @@ |
||||
/*
|
||||
SPDX-FileCopyrightText: 2024 Vlad Zahorodnii <vlad.zahorodnii@kde.org> |
||||
|
||||
SPDX-License-Identifier: LGPL-2.0-or-later |
||||
*/ |
||||
|
||||
#include "eventlistener.h" |
||||
|
||||
#include <KPluginFactory> |
||||
|
||||
namespace KWin |
||||
{ |
||||
|
||||
class KWIN_EXPORT EventListenerFactory : public PluginFactory |
||||
{ |
||||
Q_OBJECT |
||||
Q_PLUGIN_METADATA(IID PluginFactory_iid FILE "metadata.json") |
||||
Q_INTERFACES(KWin::PluginFactory) |
||||
|
||||
public: |
||||
explicit EventListenerFactory() = default; |
||||
|
||||
std::unique_ptr<Plugin> create() const override |
||||
{ |
||||
return std::make_unique<EventListener>(); |
||||
} |
||||
}; |
||||
|
||||
} // namespace KWin
|
||||
|
||||
#include "main.moc" |
||||
@ -0,0 +1,5 @@ |
||||
{ |
||||
"KPlugin": { |
||||
"EnabledByDefault": true |
||||
} |
||||
} |
||||
@ -0,0 +1,2 @@ |
||||
SPDX-FileCopyrightText: None |
||||
SPDX-License-Identifier: CC0-1.0 |
||||
Loading…
Reference in new issue