File indexing completed on 2024-05-12 05:38:24
0001 /* 0002 SPDX-FileCopyrightText: 2009 Aaron Seigo <aseigo@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QJSValue> 0010 #include <QObject> 0011 #include <QRectF> 0012 #include <QStringList> 0013 0014 namespace Plasma 0015 { 0016 class Containment; 0017 class Corona; 0018 class Theme; 0019 } // namespace Plasma 0020 0021 namespace WorkspaceScripting 0022 { 0023 class ScriptEngine; 0024 0025 class AppInterface : public QObject 0026 { 0027 Q_OBJECT 0028 Q_PROPERTY(bool locked READ coronaLocked WRITE lockCorona) 0029 Q_PROPERTY(bool hasBattery READ hasBattery) 0030 Q_PROPERTY(int screenCount READ screenCount) 0031 Q_PROPERTY(QList<int> activityIds READ activityIds) 0032 Q_PROPERTY(QList<int> panelIds READ panelIds) 0033 Q_PROPERTY(QStringList knownPanelTypes READ knownPanelTypes) 0034 Q_PROPERTY(QStringList knownActivityTypes READ knownActivityTypes) 0035 Q_PROPERTY(QStringList knownWidgetTypes READ knownWidgetTypes) 0036 Q_PROPERTY(QString theme READ theme WRITE setTheme) 0037 Q_PROPERTY(QString applicationVersion READ applicationVersion) 0038 Q_PROPERTY(QString platformVersion READ platformVersion) 0039 Q_PROPERTY(int scriptingVersion READ scriptingVersion) 0040 Q_PROPERTY(bool multihead READ multihead) 0041 Q_PROPERTY(bool multiheadScreen READ multihead) 0042 Q_PROPERTY(QString locale READ locale) 0043 Q_PROPERTY(QString language READ language) 0044 Q_PROPERTY(QString languageId READ languageId) 0045 0046 public: 0047 explicit AppInterface(ScriptEngine *env); 0048 0049 bool hasBattery() const; 0050 int screenCount() const; 0051 QList<int> activityIds() const; 0052 QList<int> panelIds() const; 0053 0054 QStringList knownWidgetTypes() const; 0055 QStringList knownActivityTypes() const; 0056 QStringList knownPanelTypes() const; 0057 QStringList knownContainmentTypes(const QString &type) const; 0058 0059 QString applicationVersion() const; 0060 QString platformVersion() const; 0061 int scriptingVersion() const; 0062 0063 QString theme() const; 0064 void setTheme(const QString &name); 0065 0066 QString locale() const; 0067 QString language() const; 0068 QString languageId() const; 0069 0070 bool multihead() const; 0071 int multiheadScreen() const; 0072 0073 bool coronaLocked() const; 0074 0075 public Q_SLOTS: 0076 QJSValue screenGeometry(int screen) const; 0077 void lockCorona(bool locked); 0078 void sleep(int ms); 0079 0080 Q_SIGNALS: 0081 void print(const QString &string); 0082 0083 private: 0084 ScriptEngine *m_env; 0085 QStringList m_knownWidgets; 0086 Plasma::Theme *m_theme; 0087 }; 0088 0089 }