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 <QWeakPointer>
0011 
0012 #include "containment.h"
0013 
0014 class PanelView;
0015 class ShellCorona;
0016 
0017 namespace WorkspaceScripting
0018 {
0019 class Panel : public Containment
0020 {
0021     Q_OBJECT
0022     Q_PROPERTY(QStringList configKeys READ configKeys)
0023     Q_PROPERTY(QStringList configGroups READ configGroups)
0024     Q_PROPERTY(QStringList currentConfigGroup WRITE setCurrentConfigGroup READ currentConfigGroup)
0025     Q_PROPERTY(QStringList globalConfigKeys READ globalConfigKeys)
0026     Q_PROPERTY(QStringList globalConfigGroups READ globalConfigGroups)
0027 
0028     Q_PROPERTY(QString version READ version)
0029     Q_PROPERTY(QString type READ type)
0030     Q_PROPERTY(QString formFactor READ formFactor)
0031     Q_PROPERTY(QList<int> widgetIds READ widgetIds)
0032     Q_PROPERTY(int screen READ screen)
0033     Q_PROPERTY(QString location READ location WRITE setLocation)
0034     Q_PROPERTY(int id READ id)
0035 
0036     Q_PROPERTY(bool locked READ locked WRITE setLocked)
0037 
0038     // panel properties
0039     Q_PROPERTY(QString alignment READ alignment WRITE setAlignment)
0040     Q_PROPERTY(int offset READ offset WRITE setOffset)
0041     Q_PROPERTY(QString lengthMode READ lengthMode WRITE setLengthMode)
0042     Q_PROPERTY(int length READ length WRITE setLength)
0043     Q_PROPERTY(int minimumLength READ minimumLength WRITE setMinimumLength)
0044     Q_PROPERTY(int maximumLength READ maximumLength WRITE setMaximumLength)
0045     Q_PROPERTY(int height READ height WRITE setHeight)
0046     Q_PROPERTY(QString hiding READ hiding WRITE setHiding)
0047     Q_PROPERTY(bool floating READ floating WRITE setFloating)
0048 
0049 public:
0050     explicit Panel(Plasma::Containment *containment, ScriptEngine *parent);
0051     ~Panel() override;
0052 
0053     QString location() const;
0054     void setLocation(const QString &location);
0055 
0056     QString alignment() const;
0057     void setAlignment(const QString &alignment);
0058 
0059     int offset() const;
0060     void setOffset(int pixels);
0061 
0062     QString lengthMode() const;
0063     void setLengthMode(const QString &mode);
0064 
0065     int length() const;
0066     void setLength(int pixels);
0067 
0068     int minimumLength() const;
0069     void setMinimumLength(int pixels);
0070 
0071     int maximumLength() const;
0072     void setMaximumLength(int pixels);
0073 
0074     int height() const;
0075     void setHeight(int height);
0076 
0077     QString hiding() const;
0078     void setHiding(const QString &mode);
0079 
0080     bool floating() const;
0081     void setFloating(bool floating);
0082 
0083 public Q_SLOTS:
0084     void remove()
0085     {
0086         Containment::remove();
0087     }
0088     void showConfigurationInterface()
0089     {
0090         Containment::showConfigurationInterface();
0091     }
0092 
0093 private:
0094     PanelView *panel() const;
0095     KConfigGroup panelConfig() const;
0096     KConfigGroup panelConfigDefaults() const;
0097 
0098     ShellCorona *m_corona;
0099 };
0100 
0101 }