Fluid
Loading...
Searching...
No Matches
fluiddecorationv1.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2022 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
2//
3// SPDX-License-Identifier: MPL-2.0
4
5#pragma once
6
7#include <QMap>
8#include <QWindow>
9#include <QWaylandClientExtension>
10
11#include <wayland-client.h>
12
13#include "qwayland-fluid-decoration-unstable-v1.h"
14
15class FluidDecoration;
16
17class FluidDecorationManager : public QWaylandClientExtensionTemplate<FluidDecorationManager>
18 , public QtWayland::zfluid_decoration_manager_v1
19{
20 Q_OBJECT
21public:
22 explicit FluidDecorationManager();
24
25 FluidDecoration *createDecoration(QWindow *window);
26
27 void registerDecoration(FluidDecoration *decoration);
28 void unregisterDecoration(FluidDecoration *decoration);
29
30 bool hasDecoration(QWindow *window) const;
31
32 FluidDecoration *decorationForWindow(QWindow *window);
33
34private:
35 QMap<QWindow *, FluidDecoration *> m_decorations;
36};
37
38class FluidDecoration : public QWaylandClientExtensionTemplate<FluidDecoration>
39 , public QtWayland::zfluid_decoration_v1
40{
41 Q_OBJECT
42public:
43 explicit FluidDecoration(FluidDecorationManager *parent, QWindow *window, struct ::zfluid_decoration_v1 *object);
45
46 inline QWindow *window() const { return m_window; }
47
48 void setForegroundColor(const QColor &color);
49 void setBackgroundColor(const QColor &color);
50
51private:
52 FluidDecorationManager *m_manager;
53 QWindow *m_window;
54 QColor m_fgColor = Qt::transparent;
55 QColor m_bgColor = Qt::transparent;
56};
57
Definition fluiddecorationv1.h:19
void registerDecoration(FluidDecoration *decoration)
Definition fluiddecorationv1.cpp:40
FluidDecorationManager()
Definition fluiddecorationv1.cpp:17
~FluidDecorationManager()
Definition fluiddecorationv1.cpp:22
FluidDecoration * createDecoration(QWindow *window)
Definition fluiddecorationv1.cpp:27
void unregisterDecoration(FluidDecoration *decoration)
Definition fluiddecorationv1.cpp:45
FluidDecoration * decorationForWindow(QWindow *window)
Definition fluiddecorationv1.cpp:55
bool hasDecoration(QWindow *window) const
Definition fluiddecorationv1.cpp:50
Definition fluiddecorationv1.h:40
void setForegroundColor(const QColor &color)
Definition fluiddecorationv1.cpp:76
void setBackgroundColor(const QColor &color)
Definition fluiddecorationv1.cpp:85
QWindow * window() const
Definition fluiddecorationv1.h:46
~FluidDecoration()
Definition fluiddecorationv1.cpp:70