File indexing completed on 2024-04-28 05:30:33

0001 /*
0002     KWin - the KDE window manager
0003     This file is part of the KDE project.
0004 
0005     SPDX-FileCopyrightText: 2017 Martin Flöser <mgraesslin@kde.org>
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 #pragma once
0010 
0011 #include "inputmethod.h"
0012 #include <QObject>
0013 
0014 namespace KWin
0015 {
0016 
0017 class KWIN_EXPORT VirtualKeyboardDBus : public QObject
0018 {
0019     Q_OBJECT
0020     Q_CLASSINFO("D-Bus Interface", "org.kde.kwin.VirtualKeyboard")
0021     Q_PROPERTY(bool available READ isAvailable NOTIFY availableChanged)
0022     Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged)
0023     Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged)
0024     Q_PROPERTY(bool visible READ isVisible NOTIFY visibleChanged)
0025     Q_PROPERTY(bool activeClientSupportsTextInput READ activeClientSupportsTextInput NOTIFY activeClientSupportsTextInputChanged)
0026 public:
0027     explicit VirtualKeyboardDBus(InputMethod *inputMethod);
0028     ~VirtualKeyboardDBus() override;
0029     bool isEnabled() const;
0030 
0031     bool activeClientSupportsTextInput() const;
0032     bool isVisible() const;
0033     bool isActive() const;
0034     bool isAvailable() const;
0035     void setEnabled(bool enabled);
0036     void setActive(bool active);
0037 
0038     Q_SCRIPTABLE bool willShowOnActive() const;
0039     Q_SCRIPTABLE void forceActivate();
0040 
0041 Q_SIGNALS:
0042     Q_SCRIPTABLE void enabledChanged();
0043     Q_SCRIPTABLE void activeChanged();
0044     Q_SCRIPTABLE void visibleChanged();
0045     Q_SCRIPTABLE void availableChanged();
0046     Q_SCRIPTABLE void activeClientSupportsTextInputChanged();
0047 
0048 private:
0049     InputMethod *const m_inputMethod;
0050 };
0051 
0052 }