File indexing completed on 2024-05-12 05:36:09
0001 // SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org> 0002 // SPDX-License-Identifier: GPL-2.0-or-later 0003 0004 #pragma once 0005 0006 #include <QObject> 0007 #include <QString> 0008 #include <qqmlregistration.h> 0009 0010 class ShellDBusObject : public QObject 0011 { 0012 Q_OBJECT 0013 QML_ELEMENT 0014 QML_SINGLETON 0015 Q_CLASSINFO("D-Bus Interface", "org.kde.plasmashell") 0016 0017 public: 0018 ShellDBusObject(QObject *parent = nullptr); 0019 0020 // called by QML 0021 Q_INVOKABLE void registerObject(); 0022 0023 Q_SIGNALS: 0024 Q_SCRIPTABLE void doNotDisturbChanged(); 0025 Q_SCRIPTABLE void isActionDrawerOpenChanged(); 0026 Q_SCRIPTABLE void isTaskSwitcherVisibleChanged(); 0027 Q_SCRIPTABLE void openActionDrawerRequested(); 0028 Q_SCRIPTABLE void closeActionDrawerRequested(); 0029 Q_SCRIPTABLE void openAppLaunchAnimationRequested(QString splashIcon, QString title, qreal x, qreal y, qreal sourceIconSize); 0030 Q_SCRIPTABLE void closeAppLaunchAnimationRequested(); 0031 Q_SCRIPTABLE void openHomeScreenRequested(); 0032 Q_SCRIPTABLE void resetHomeScreenPositionRequested(); 0033 Q_SCRIPTABLE void showVolumeOSDRequested(); 0034 0035 public Q_SLOTS: 0036 Q_SCRIPTABLE bool doNotDisturb(); 0037 Q_SCRIPTABLE void setDoNotDisturb(bool value); 0038 0039 // TODO: Account for multiple action drawers? 0040 Q_SCRIPTABLE bool isActionDrawerOpen(); 0041 Q_SCRIPTABLE void setIsActionDrawerOpen(bool value); 0042 0043 Q_SCRIPTABLE bool isTaskSwitcherVisible(); 0044 Q_SCRIPTABLE void setIsTaskSwitcherVisible(bool value); 0045 0046 Q_SCRIPTABLE void openActionDrawer(); 0047 Q_SCRIPTABLE void closeActionDrawer(); 0048 0049 Q_SCRIPTABLE void openAppLaunchAnimation(QString splashIcon, QString title, qreal x, qreal y, qreal sourceIconSize); 0050 Q_SCRIPTABLE void closeAppLaunchAnimation(); 0051 0052 Q_SCRIPTABLE void openHomeScreen(); 0053 Q_SCRIPTABLE void resetHomeScreenPosition(); 0054 Q_SCRIPTABLE void showVolumeOSD(); 0055 0056 private: 0057 bool m_initialized = false; 0058 0059 bool m_doNotDisturb = false; 0060 bool m_isActionDrawerOpen = false; 0061 bool m_isTaskSwitcherVisible = false; 0062 };