/* SPDX-FileCopyrightText: 2019 David Edmundson SPDX-FileCopyrightText: 2019 Tranter Madi SPDX-License-Identifier: LGPL-2.0-or-later */ #pragma once #include #include class QDBusServiceWatcher; class ShellCorona; class StrutManager : public QObject { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.kde.PlasmaShell.StrutManager") public: explicit StrutManager(ShellCorona *plasmashellCorona); QRect availableScreenRect(int id) const; QRegion availableScreenRegion(int id) const; public Q_SLOTS: QRect availableScreenRect(const QString &screenName) const; void setAvailableScreenRect(const QString &service, const QString &screenName, const QRect &rect); void setAvailableScreenRegion(const QString &service, const QString &screenName, const QList &rects); private: ShellCorona *m_plasmashellCorona; QDBusServiceWatcher *m_serviceWatcher; bool addWatchedService(const QString &service); QHash> m_availableScreenRects; QHash> m_availableScreenRegions; };