KDecoration3

decoratedwindowprivate.h
1/*
2 * SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5 */
6#pragma once
7
8#include "../decorationdefines.h"
9#include <kdecoration3/private/kdecoration3_private_export.h>
10
11#include <QIcon>
12#include <QString>
13
14class QMenu;
15
16//
17// W A R N I N G
18// -------------
19//
20// This file is not part of the KDecoration3 API. It exists purely as an
21// implementation detail. This header file may change from version to
22// version without notice, or even be removed.
23//
24// We mean it.
25//
26
27namespace KDecoration3
28{
29class Decoration;
30class DecoratedWindow;
31class Positioner;
32
33class KDECORATIONS_PRIVATE_EXPORT DecoratedWindowPrivate
34{
35public:
36 virtual ~DecoratedWindowPrivate();
37 virtual bool isActive() const = 0;
38 virtual QString caption() const = 0;
39 virtual bool isOnAllDesktops() const = 0;
40 virtual bool isShaded() const = 0;
41 virtual QIcon icon() const = 0;
42 virtual bool isMaximized() const = 0;
43 virtual bool isMaximizedHorizontally() const = 0;
44 virtual bool isMaximizedVertically() const = 0;
45 virtual bool isKeepAbove() const = 0;
46 virtual bool isKeepBelow() const = 0;
47
48 virtual bool isCloseable() const = 0;
49 virtual bool isMaximizeable() const = 0;
50 virtual bool isMinimizeable() const = 0;
51 virtual bool providesContextHelp() const = 0;
52 virtual bool isModal() const = 0;
53 virtual bool isShadeable() const = 0;
54 virtual bool isMoveable() const = 0;
55 virtual bool isResizeable() const = 0;
56
57 virtual qreal width() const = 0;
58 virtual qreal height() const = 0;
59 virtual QSizeF size() const = 0;
60 virtual QPalette palette() const = 0;
61 virtual Qt::Edges adjacentScreenEdges() const = 0;
62 virtual qreal scale() const = 0;
63 virtual qreal nextScale() const = 0;
64
65 virtual void requestShowToolTip(const QString &text) = 0;
66 virtual void requestHideToolTip() = 0;
67 virtual void requestClose() = 0;
68 virtual void requestToggleMaximization(Qt::MouseButtons buttons) = 0;
69 virtual void requestMinimize() = 0;
70 virtual void requestContextHelp() = 0;
71 virtual void requestToggleOnAllDesktops() = 0;
72 virtual void requestToggleShade() = 0;
73 virtual void requestToggleKeepAbove() = 0;
74 virtual void requestToggleKeepBelow() = 0;
75 virtual void requestShowWindowMenu(const QRect &rect) = 0;
76
77 Decoration *decoration();
78 Decoration *decoration() const;
79
80 virtual QColor color(ColorGroup group, ColorRole role) const;
81 virtual QString windowClass() const = 0;
82
83 virtual bool hasApplicationMenu() const = 0;
84 virtual bool isApplicationMenuActive() const = 0;
85
86 virtual void showApplicationMenu(int actionId) = 0;
87 virtual void requestShowApplicationMenu(const QRect &rect, int actionId) = 0;
88
89protected:
90 explicit DecoratedWindowPrivate(DecoratedWindow *client, Decoration *decoration);
91 DecoratedWindow *window();
92
93private:
94 class Private;
95 const std::unique_ptr<Private> d;
96};
97
98class KDECORATIONS_PRIVATE_EXPORT DecoratedWindowPrivateV2 : public DecoratedWindowPrivate
99{
100public:
101 virtual QString applicationMenuServiceName() const = 0;
102 virtual QString applicationMenuObjectPath() const = 0;
103
104protected:
105 explicit DecoratedWindowPrivateV2(DecoratedWindow *client, Decoration *decoration);
106};
107
108class KDECORATIONS_PRIVATE_EXPORT DecoratedWindowPrivateV3 : public DecoratedWindowPrivateV2
109{
110public:
111 virtual void popup(const Positioner &positioner, QMenu *menu) = 0;
112
113protected:
114 explicit DecoratedWindowPrivateV3(DecoratedWindow *client, Decoration *decoration);
115};
116
117} // namespace
The Client which gets decorated.
Base class for the Decoration.
Definition decoration.h:112
Popup positioner.
Definition decoration.h:64
Framework for creating window decorations.
QWidget * window(QObject *job)
typedef Edges
typedef MouseButtons
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Apr 11 2025 11:50:20 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.