KWin
Loading...
Searching...
No Matches
previewclient.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
5*/
6#pragma once
7
9
10#include <KDecoration2/Private/DecoratedClientPrivate>
11#include <QObject>
12#include <QPalette>
13
14class QAbstractItemModel;
15
16namespace KDecoration2
17{
18namespace Preview
19{
20class PreviewClient : public QObject, public ApplicationMenuEnabledDecoratedClientPrivate
21{
22 Q_OBJECT
23 Q_PROPERTY(KDecoration2::Decoration *decoration READ decoration CONSTANT)
24 Q_PROPERTY(QString caption READ caption WRITE setCaption NOTIFY captionChanged)
25 Q_PROPERTY(QIcon icon READ icon WRITE setIcon NOTIFY iconChanged)
26 Q_PROPERTY(QString iconName READ iconName WRITE setIconName NOTIFY iconNameChanged)
27 Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged)
28 Q_PROPERTY(bool closeable READ isCloseable WRITE setCloseable NOTIFY closeableChanged)
29 Q_PROPERTY(bool keepAbove READ isKeepAbove WRITE setKeepAbove NOTIFY keepAboveChanged)
30 Q_PROPERTY(bool keepBelow READ isKeepBelow WRITE setKeepBelow NOTIFY keepBelowChanged)
32 Q_PROPERTY(bool maximized READ isMaximized NOTIFY maximizedChanged)
36 Q_PROPERTY(bool modal READ isModal WRITE setModal NOTIFY modalChanged)
37 Q_PROPERTY(bool movable READ isMoveable WRITE setMovable NOTIFY movableChanged)
39 Q_PROPERTY(bool resizable READ isResizeable WRITE setResizable NOTIFY resizableChanged)
40 Q_PROPERTY(bool shadeable READ isShadeable WRITE setShadeable NOTIFY shadeableChanged)
41 Q_PROPERTY(bool shaded READ isShaded WRITE setShaded NOTIFY shadedChanged)
43 Q_PROPERTY(int width READ width WRITE setWidth NOTIFY widthChanged)
44 Q_PROPERTY(int height READ height WRITE setHeight NOTIFY heightChanged)
49public:
50 explicit PreviewClient(DecoratedClient *client, Decoration *decoration);
51 ~PreviewClient() override;
52
53 QString caption() const override;
54 WId decorationId() const override;
55 WId windowId() const override;
56 QIcon icon() const override;
57 bool isActive() const override;
58 bool isCloseable() const override;
59 bool isKeepAbove() const override;
60 bool isKeepBelow() const override;
61 bool isMaximizeable() const override;
62 bool isMaximized() const override;
63 bool isMaximizedVertically() const override;
64 bool isMaximizedHorizontally() const override;
65 bool isMinimizeable() const override;
66 bool isModal() const override;
67 bool isMoveable() const override;
68 bool isOnAllDesktops() const override;
69 bool isResizeable() const override;
70 bool isShadeable() const override;
71 bool isShaded() const override;
72 bool providesContextHelp() const override;
73
74 int width() const override;
75 int height() const override;
76 QSize size() const override;
77 QPalette palette() const override;
78 QColor color(ColorGroup group, ColorRole role) const override;
79 Qt::Edges adjacentScreenEdges() const override;
80 QString windowClass() const override;
81
82 bool hasApplicationMenu() const override;
83 bool isApplicationMenuActive() const override;
84
85 void requestShowToolTip(const QString &text) override;
86 void requestHideToolTip() override;
87 void requestClose() override;
88 void requestContextHelp() override;
89 void requestToggleMaximization(Qt::MouseButtons buttons) override;
90 void requestMinimize() override;
91 void requestToggleKeepAbove() override;
92 void requestToggleKeepBelow() override;
93 void requestToggleShade() override;
94 void requestShowWindowMenu(const QRect &rect) override;
95 void requestShowApplicationMenu(const QRect &rect, int actionId) override;
96 void requestToggleOnAllDesktops() override;
97
98 void showApplicationMenu(int actionId) override;
99
100 void setCaption(const QString &caption);
101 void setActive(bool active);
109 void setModal(bool modal);
110 void setMovable(bool movable);
113 void setShaded(bool shaded);
114 void setProvidesContextHelp(bool contextHelp);
115
116 void setWidth(int width);
117 void setHeight(int height);
118
119 QString iconName() const;
120 void setIconName(const QString &icon);
121 void setIcon(const QIcon &icon);
122
123 bool bordersTopEdge() const;
124 bool bordersLeftEdge() const;
125 bool bordersRightEdge() const;
126 bool bordersBottomEdge() const;
127
128 void setBordersTopEdge(bool enabled);
129 void setBordersLeftEdge(bool enabled);
130 void setBordersRightEdge(bool enabled);
131 void setBordersBottomEdge(bool enabled);
132
133Q_SIGNALS:
134 void captionChanged(const QString &);
135 void iconChanged(const QIcon &);
136 void iconNameChanged(const QString &);
137 void activeChanged(bool);
146 void modalChanged(bool);
147 void movableChanged(bool);
151 void shadedChanged(bool);
153 void widthChanged(int);
154 void heightChanged(int);
155 void paletteChanged(const QPalette &);
160
165
166private:
167 QString m_caption;
168 QIcon m_icon;
169 QString m_iconName;
170 KWin::Decoration::DecorationPalette m_palette;
171 bool m_active;
172 bool m_closeable;
173 bool m_keepBelow;
174 bool m_keepAbove;
175 bool m_maximizable;
176 bool m_maximizedHorizontally;
177 bool m_maximizedVertically;
178 bool m_minimizable;
179 bool m_modal;
180 bool m_movable;
181 bool m_resizable;
182 bool m_shadeable;
183 bool m_shaded;
184 bool m_providesContextHelp;
185 bool m_onAllDesktops;
186 int m_width;
187 int m_height;
188 bool m_bordersTopEdge;
189 bool m_bordersLeftEdge;
190 bool m_bordersRightEdge;
191 bool m_bordersBottomEdge;
192};
193
194} // namespace Preview
195} // namespace KDecoration2
bool isMaximizedHorizontally() const override
KDecoration2::Decoration * decoration
void iconNameChanged(const QString &)
void setMinimizable(bool minimizable)
void setMaximizable(bool maximizable)
void setMaximizedVertically(bool maximized)
bool isMaximizedVertically() const override
void setProvidesContextHelp(bool contextHelp)
bool isApplicationMenuActive() const override
Qt::Edges adjacentScreenEdges() const override
void setMaximizedHorizontally(bool maximized)
void requestShowWindowMenu(const QRect &rect) override
void requestToggleMaximization(Qt::MouseButtons buttons) override
void requestShowToolTip(const QString &text) override
QString windowClass() const override
void showApplicationMenu(int actionId) override
void setCaption(const QString &caption)
void setIconName(const QString &icon)
QPalette palette() const override
void paletteChanged(const QPalette &)
void captionChanged(const QString &)
void requestShowApplicationMenu(const QRect &rect, int actionId) override
QColor color(ColorGroup group, ColorRole role) const override
#define private
#define explicit