1 /* 2 KWin - the KDE window manager 3 This file is part of the KDE project. 4 5 SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org> 6 7 SPDX-License-Identifier: GPL-2.0-or-later 8 */ 9 #ifndef KWIN_MOCK_ABSTRACT_CLIENT_H 10 #define KWIN_MOCK_ABSTRACT_CLIENT_H 11 12 #include <QObject> 13 #include <QRect> 14 15 namespace KWin 16 { 17 18 class AbstractClient : public QObject 19 { 20 Q_OBJECT 21 public: 22 explicit AbstractClient(QObject *parent); 23 ~AbstractClient() override; 24 25 int screen() const; 26 bool isOnScreen(int screen) const; 27 bool isActive() const; 28 bool isFullScreen() const; 29 bool isHiddenInternal() const; 30 QRect frameGeometry() const; 31 bool keepBelow() const; 32 33 void setActive(bool active); 34 void setScreen(int screen); 35 void setFullScreen(bool set); 36 void setHiddenInternal(bool set); 37 void moveResize(const QRect &rect); 38 void setKeepBelow(bool); 39 bool isInteractiveResize() const; 40 void setInteractiveResize(bool set); 41 virtual void showOnScreenEdge() = 0; 42 43 Q_SIGNALS: 44 void geometryChanged(); 45 void keepBelowChanged(); 46 47 private: 48 bool m_active; 49 int m_screen; 50 bool m_fullscreen; 51 bool m_hiddenInternal; 52 bool m_keepBelow; 53 QRect m_frameGeometry; 54 bool m_resize; 55 }; 56 57 } 58 59 #endif 60