File indexing completed on 2024-05-12 05:38:25

0001 /*
0002     SPDX-FileCopyrightText: 2009 Aaron Seigo <aseigo@kde.org>
0003     SPDX-FileCopyrightText: 2018 Marco Martin <mart@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #pragma once
0009 
0010 #include <QJSValue>
0011 #include <QObject>
0012 
0013 #include <QFontMetrics>
0014 
0015 #include <plasmaactivities/controller.h>
0016 
0017 #include "../shellcorona.h"
0018 #include "scriptengine.h"
0019 
0020 namespace WorkspaceScripting
0021 {
0022 class ScriptEngine::V1 : public QObject
0023 {
0024     Q_OBJECT
0025     Q_PROPERTY(int gridUnit READ gridUnit CONSTANT)
0026 
0027 public:
0028     V1(ScriptEngine *parent);
0029     ~V1();
0030     int gridUnit() const;
0031 
0032     Q_INVOKABLE QJSValue getApiVersion(const QJSValue &param);
0033     Q_INVOKABLE QJSValue desktopById(const QJSValue &id = QJSValue()) const;
0034     Q_INVOKABLE QJSValue desktopsForActivity(const QJSValue &id = QJSValue()) const;
0035     Q_INVOKABLE QJSValue desktopForScreen(const QJSValue &screen = QJSValue()) const;
0036     Q_INVOKABLE QJSValue screenForConnector(const QJSValue &param = QJSValue()) const;
0037     Q_INVOKABLE QJSValue createActivity(const QJSValue &nameParam = QJSValue(), const QString &plugin = QString());
0038     Q_INVOKABLE QJSValue setCurrentActivity(const QJSValue &id = QJSValue());
0039     Q_INVOKABLE QJSValue setActivityName(const QJSValue &idParam = QJSValue(), const QJSValue &nameParam = QJSValue());
0040     Q_INVOKABLE QJSValue activityName(const QJSValue &idParam = QJSValue()) const;
0041     Q_INVOKABLE QString currentActivity() const;
0042     Q_INVOKABLE QJSValue activities() const;
0043     Q_INVOKABLE QJSValue loadSerializedLayout(const QJSValue &data = QJSValue());
0044     Q_INVOKABLE QJSValue panelById(const QJSValue &idParam = QJSValue()) const;
0045     Q_INVOKABLE QJSValue desktops() const;
0046     Q_INVOKABLE QJSValue panels() const;
0047     Q_INVOKABLE bool fileExists(const QString &path = QString()) const;
0048     Q_INVOKABLE bool loadTemplate(const QString &layout = QString());
0049     Q_INVOKABLE bool applicationExists(const QString &application = QString()) const;
0050     Q_INVOKABLE QJSValue defaultApplication(const QString &application = QString(), bool storageId = false) const;
0051     Q_INVOKABLE QJSValue applicationPath(const QString &application = QString()) const;
0052     Q_INVOKABLE QJSValue userDataPath(const QString &type = QString(), const QString &path = QString()) const;
0053     Q_INVOKABLE QJSValue knownWallpaperPlugins(const QString &formFactor = QString()) const;
0054 
0055     Q_INVOKABLE void setImmutability(const QString &immutability = QString());
0056     Q_INVOKABLE QString immutability() const;
0057     Q_INVOKABLE QJSValue createContainment(const QString &type, const QString &defautPlugin, const QString &plugin = QString());
0058 
0059     // for ctors
0060     Q_INVOKABLE QJSValue newPanel(const QString &plugin = QStringLiteral("org.kde.panel"));
0061     Q_INVOKABLE QJSValue configFile(const QJSValue &config = QJSValue(), const QString &group = QString());
0062 
0063 Q_SIGNALS:
0064     void print(const QJSValue &param);
0065 
0066 private:
0067     ScriptEngine *m_engine;
0068 };
0069 
0070 }