KWin
Loading...
Searching...
No Matches
effectframe.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2006 Lubos Lunak <l.lunak@kde.org>
3 SPDX-FileCopyrightText: 2010, 2011 Martin Gräßlin <mgraesslin@kde.org>
4
5 SPDX-License-Identifier: GPL-2.0-or-later
6*/
7
8#pragma once
9
10#include "effect/globals.h"
12
13#include <QFont>
14#include <QIcon>
15
16namespace KWin
17{
18
19class RenderTarget;
20class RenderViewport;
21
31
33{
34 Q_OBJECT
35
36 Q_PROPERTY(QFont font READ font NOTIFY fontChanged)
37 Q_PROPERTY(QIcon icon READ icon NOTIFY iconChanged)
38 Q_PROPERTY(QSize iconSize READ iconSize NOTIFY iconSizeChanged)
39 Q_PROPERTY(QString text READ text NOTIFY textChanged)
40 Q_PROPERTY(qreal frameOpacity READ frameOpacity NOTIFY frameOpacityChanged)
43
44public:
45 EffectFrameQuickScene(EffectFrameStyle style, bool staticSize, QPoint position, Qt::Alignment alignment);
47
48 EffectFrameStyle style() const;
49 bool isStatic() const;
50
51 QFont font() const;
52 void setFont(const QFont &font);
53 Q_SIGNAL void fontChanged(const QFont &font);
54
55 QIcon icon() const;
56 void setIcon(const QIcon &icon);
57 Q_SIGNAL void iconChanged(const QIcon &icon);
58
59 QSize iconSize() const;
60 void setIconSize(const QSize &iconSize);
61 Q_SIGNAL void iconSizeChanged(const QSize &iconSize);
62
63 QString text() const;
64 void setText(const QString &text);
65 Q_SIGNAL void textChanged(const QString &text);
66
67 qreal frameOpacity() const;
68 void setFrameOpacity(qreal frameOpacity);
69 Q_SIGNAL void frameOpacityChanged(qreal frameOpacity);
70
71 bool crossFadeEnabled() const;
72 void setCrossFadeEnabled(bool enabled);
73 Q_SIGNAL void crossFadeEnabledChanged(bool enabled);
74
75 qreal crossFadeProgress() const;
76 void setCrossFadeProgress(qreal progress);
77 Q_SIGNAL void crossFadeProgressChanged(qreal progress);
78
79 Qt::Alignment alignment() const;
80 void setAlignment(Qt::Alignment alignment);
81
82 QPoint position() const;
83 void setPosition(const QPoint &point);
84
86 void reposition();
87
88 EffectFrameStyle m_style;
89
90 // Position
91 bool m_static;
92 QPoint m_point;
93 Qt::Alignment m_alignment;
94
95 // Contents
96 QFont m_font;
97 QIcon m_icon;
98 QSize m_iconSize;
99 QString m_text;
100 qreal m_frameOpacity = 0.0;
101 bool m_crossFadeEnabled = false;
102 qreal m_crossFadeProgress = 0.0;
103};
104
113class KWIN_EXPORT EffectFrame : public QObject
114{
115 Q_OBJECT
116
117public:
118 explicit EffectFrame(EffectFrameStyle style, bool staticSize = true, QPoint position = QPoint(-1, -1),
119 Qt::Alignment alignment = Qt::AlignCenter);
120 ~EffectFrame();
121
126 void free();
127
131 void render(const RenderTarget &renderTarget, const RenderViewport &viewport, const QRegion &region = infiniteRegion(), double opacity = 1.0, double frameOpacity = 1.0);
132
133 void setPosition(const QPoint &point);
138 void setAlignment(Qt::Alignment alignment);
139 Qt::Alignment alignment() const;
140 void setGeometry(const QRect &geometry, bool force = false);
141 QRect geometry() const;
142
143 void setText(const QString &text);
144 QString text() const;
145 void setFont(const QFont &font);
146 QFont font() const;
150 void setIcon(const QIcon &icon);
151 QIcon icon() const;
152 void setIconSize(const QSize &size);
153 QSize iconSize() const;
154
158 EffectFrameStyle style() const;
159
169 void enableCrossFade(bool enable);
175 bool isCrossFade() const;
188 void setCrossFadeProgress(qreal progress);
196 qreal crossFadeProgress() const;
197
198private:
200};
201
202} // namespace KWin
Helper class for displaying text and icons in frames.
EffectFrameStyle style() const
Qt::Alignment alignment() const
void setFrameOpacity(qreal frameOpacity)
Q_SIGNAL void textChanged(const QString &text)
Q_SIGNAL void fontChanged(const QFont &font)
void setAlignment(Qt::Alignment alignment)
Q_SIGNAL void iconSizeChanged(const QSize &iconSize)
void setText(const QString &text)
void setFont(const QFont &font)
void setIconSize(const QSize &iconSize)
void setPosition(const QPoint &point)
void setCrossFadeEnabled(bool enabled)
Q_SIGNAL void iconChanged(const QIcon &icon)
Q_SIGNAL void frameOpacityChanged(qreal frameOpacity)
void setIcon(const QIcon &icon)
Q_SIGNAL void crossFadeProgressChanged(qreal progress)
Q_SIGNAL void crossFadeEnabledChanged(bool enabled)
void setCrossFadeProgress(qreal progress)
std::unique_ptr< QQuickWindow > m_view
void setGeometry(const QRect &rect)
KWIN_EXPORT QRect infiniteRegion()
Definition globals.h:234
EffectFrameStyle
Definition effectframe.h:26
@ EffectFrameStyled
Displays a Plasma-styled frame around the contents.
Definition effectframe.h:29
@ EffectFrameUnstyled
Displays a basic box around the contents.
Definition effectframe.h:28
@ EffectFrameNone
Displays no frame around the contents.
Definition effectframe.h:27
#define private