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

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 <QWeakPointer>
0011 
0012 #include "applet.h"
0013 
0014 namespace Plasma
0015 {
0016 class Applet;
0017 } // namespace Plasma
0018 
0019 namespace WorkspaceScripting
0020 {
0021 class Widget : public Applet
0022 {
0023     Q_OBJECT
0024     Q_PROPERTY(QString type READ type)
0025     Q_PROPERTY(QString version READ version)
0026     Q_PROPERTY(int id READ id)
0027     Q_PROPERTY(QStringList configKeys READ configKeys)
0028     Q_PROPERTY(QStringList configGroups READ configGroups)
0029     Q_PROPERTY(QStringList globalConfigKeys READ globalConfigKeys)
0030     Q_PROPERTY(QStringList globalConfigGroups READ globalConfigGroups)
0031     Q_PROPERTY(int index WRITE setIndex READ index)
0032     // We pass our js based QRect wrapper instead of a simple QRectF
0033     Q_PROPERTY(QJSValue geometry WRITE setGeometry READ geometry)
0034     Q_PROPERTY(QStringList currentConfigGroup WRITE setCurrentConfigGroup READ currentConfigGroup)
0035     Q_PROPERTY(QString globalShortcut WRITE setGlobalShortcut READ globalShorcut)
0036     Q_PROPERTY(bool locked READ locked WRITE setLocked)
0037     Q_PROPERTY(QString userBackgroundHints WRITE setUserBackgroundHints READ userBackgroundHints)
0038 
0039 public:
0040     explicit Widget(Plasma::Applet *applet, ScriptEngine *parent = nullptr);
0041     ~Widget() override;
0042 
0043     uint id() const;
0044     QString type() const;
0045 
0046     int index() const;
0047     void setIndex(int index);
0048 
0049     QJSValue geometry() const;
0050     void setGeometry(const QJSValue &geometry);
0051 
0052     void setGlobalShortcut(const QString &shortcut);
0053     QString globalShorcut() const;
0054 
0055     QString userBackgroundHints() const;
0056     void setUserBackgroundHints(const QString &hint);
0057 
0058     Plasma::Applet *applet() const override;
0059 
0060 public Q_SLOTS:
0061     void remove();
0062     void showConfigurationInterface();
0063 
0064 private:
0065     class Private;
0066     Private *const d;
0067 };
0068 
0069 }