/* SPDX-FileCopyrightText: 2009 Aaron Seigo SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once #include #include class KModifierKeyInfo; class KeyService : public Plasma::Service { Q_OBJECT public: KeyService(QObject *parent, KModifierKeyInfo *keyInfo, Qt::Key key); void lock(bool lock); void latch(bool lock); protected: Plasma::ServiceJob *createJob(const QString &operation, QMap ¶meters) override; private: KModifierKeyInfo *m_keyInfo; Qt::Key m_key; }; class LockKeyJob : public Plasma::ServiceJob { Q_OBJECT public: LockKeyJob(KeyService *service, const QMap ¶meters); void start() override; private: KeyService *m_service; }; class LatchKeyJob : public Plasma::ServiceJob { Q_OBJECT public: LatchKeyJob(KeyService *service, const QMap ¶meters); void start() override; private: KeyService *m_service; };