KWin
Loading...
Searching...
No Matches
decoratedclient.h
Go to the documentation of this file.
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#pragma once
10#include "options.h"
11
12#include <KDecoration2/Private/DecoratedClientPrivate>
13
14#include <QDeadlineTimer>
15#include <QObject>
16#include <QTimer>
17
18namespace KWin
19{
20
21class Window;
22
23namespace Decoration
24{
25
26class DecoratedClientImpl : public QObject, public KDecoration2::ApplicationMenuEnabledDecoratedClientPrivate
27{
28 Q_OBJECT
29public:
30 explicit DecoratedClientImpl(Window *window, KDecoration2::DecoratedClient *decoratedClient, KDecoration2::Decoration *decoration);
31 ~DecoratedClientImpl() override;
32 QString caption() const override;
33 WId decorationId() const override;
34 int height() const override;
35 QIcon icon() const override;
36 bool isActive() const override;
37 bool isCloseable() const override;
38 bool isKeepAbove() const override;
39 bool isKeepBelow() const override;
40 bool isMaximizeable() const override;
41 bool isMaximized() const override;
42 bool isMaximizedHorizontally() const override;
43 bool isMaximizedVertically() const override;
44 bool isMinimizeable() const override;
45 bool isModal() const override;
46 bool isMoveable() const override;
47 bool isOnAllDesktops() const override;
48 bool isResizeable() const override;
49 bool isShadeable() const override;
50 bool isShaded() const override;
51 QPalette palette() const override;
52 QColor color(KDecoration2::ColorGroup group, KDecoration2::ColorRole role) const override;
53 bool providesContextHelp() const override;
54 QSize size() const override;
55 int width() const override;
56 QString windowClass() const override;
57 WId windowId() const override;
58
59 Qt::Edges adjacentScreenEdges() const override;
60
61 bool hasApplicationMenu() const override;
62 bool isApplicationMenuActive() const override;
63
64 void requestShowToolTip(const QString &text) override;
65 void requestHideToolTip() override;
66 void requestClose() override;
67 void requestContextHelp() override;
68 void requestToggleMaximization(Qt::MouseButtons buttons) override;
69 void requestMinimize() override;
70 void requestShowWindowMenu(const QRect &rect) override;
71 void requestShowApplicationMenu(const QRect &rect, int actionId) override;
72 void requestToggleKeepAbove() override;
73 void requestToggleKeepBelow() override;
75 void requestToggleShade() override;
76
77 void showApplicationMenu(int actionId) override;
78
80 {
81 return m_window;
82 }
83 KDecoration2::DecoratedClient *decoratedClient()
84 {
85 return KDecoration2::DecoratedClientPrivate::client();
86 }
87
88 void signalShadeChange();
89
90private Q_SLOTS:
91 void delayedRequestToggleMaximization(Options::WindowOperation operation);
92
93private:
94 Window *m_window;
95 QSize m_clientSize;
96
97 QString m_toolTipText;
98 QTimer m_toolTipWakeUp;
99 QDeadlineTimer m_toolTipFallAsleep;
100 bool m_toolTipShowing = false;
101};
102
103}
104}
bool isMaximizeable() const override
void showApplicationMenu(int actionId) override
QColor color(KDecoration2::ColorGroup group, KDecoration2::ColorRole role) const override
QString caption() const override
bool isMinimizeable() const override
KDecoration2::DecoratedClient * decoratedClient()
void requestToggleMaximization(Qt::MouseButtons buttons) override
bool isOnAllDesktops() const override
DecoratedClientImpl(Window *window, KDecoration2::DecoratedClient *decoratedClient, KDecoration2::Decoration *decoration)
QPalette palette() const override
Qt::Edges adjacentScreenEdges() const override
bool isResizeable() const override
void requestShowToolTip(const QString &text) override
bool providesContextHelp() const override
void requestShowWindowMenu(const QRect &rect) override
void requestShowApplicationMenu(const QRect &rect, int actionId) override