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 }