File indexing completed on 2024-04-14 05:39:34
0001 // SPDX-License-Identifier: GPL-3.0-or-later 0002 /* 0003 Copyright 2017 Martin Koller, kollix@aon.at 0004 0005 This file is part of liquidshell. 0006 0007 liquidshell is free software: you can redistribute it and/or modify 0008 it under the terms of the GNU General Public License as published by 0009 the Free Software Foundation, either version 3 of the License, or 0010 (at your option) any later version. 0011 0012 liquidshell is distributed in the hope that it will be useful, 0013 but WITHOUT ANY WARRANTY; without even the implied warranty of 0014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0015 GNU General Public License for more details. 0016 0017 You should have received a copy of the GNU General Public License 0018 along with liquidshell. If not, see <http://www.gnu.org/licenses/>. 0019 */ 0020 0021 #ifndef _DesktopApplet_H_ 0022 #define _DesktopApplet_H_ 0023 0024 #include <QFrame> 0025 #include <QDialogButtonBox> 0026 #include <KWindowSystem> 0027 0028 class DesktopApplet : public QFrame 0029 { 0030 Q_OBJECT 0031 0032 public: 0033 DesktopApplet(QWidget *parent, const QString &theId, bool addConfigureAction = true); 0034 0035 virtual void loadConfig(); 0036 0037 bool isConfiguring() const { return buttons->isVisible(); } 0038 0039 const QString &getId() const { return id; } 0040 int isOnDesktop(int d) const { return (onDesktop == NET::OnAllDesktops) || (onDesktop == d); } 0041 0042 public Q_SLOTS: 0043 virtual void configure() { } 0044 virtual void saveConfig(); 0045 0046 Q_SIGNALS: 0047 void removeThis(DesktopApplet *); 0048 0049 protected: 0050 QString id; 0051 0052 private Q_SLOTS: 0053 void startGeometryChange(); 0054 void finishGeometryChange(QAbstractButton *clicked); 0055 void removeThisApplet(); 0056 0057 private: 0058 QDialogButtonBox *buttons = nullptr; 0059 QRect oldRect; 0060 int onDesktop = NET::OnAllDesktops; 0061 }; 0062 0063 #endif