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