KWayland
7 #include "event_queue.h"
9 #include "wayland_pointer_p.h"
13 #include <wayland-shadow-client-protocol.h>
19 class Q_DECL_HIDDEN ShadowManager::Private
24 WaylandPointer<org_kde_kwin_shadow_manager, org_kde_kwin_shadow_manager_destroy> manager;
25 EventQueue *queue =
nullptr;
34 ShadowManager::~ShadowManager()
51 return d->manager.isValid();
57 Q_ASSERT(!d->manager);
58 d->manager.setup(manager);
75 auto w = org_kde_kwin_shadow_manager_create(d->manager, *surface);
77 d->queue->addProxy(w);
83 void ShadowManager::removeShadow(
Surface *surface)
86 org_kde_kwin_shadow_manager_unset(d->manager, *surface);
89 ShadowManager::operator org_kde_kwin_shadow_manager *()
94 ShadowManager::operator org_kde_kwin_shadow_manager *()
const
102 WaylandPointer<org_kde_kwin_shadow, org_kde_kwin_shadow_destroy> shadow;
105 Shadow::Shadow(
QObject *parent)
124 Q_ASSERT(!d->shadow);
125 d->shadow.setup(shadow);
135 return d->shadow.isValid();
138 void Shadow::setOffsets(
const QMarginsF &margins)
141 org_kde_kwin_shadow_set_left_offset(d->shadow, wl_fixed_from_double(margins.
left()));
142 org_kde_kwin_shadow_set_top_offset(d->shadow, wl_fixed_from_double(margins.
top()));
143 org_kde_kwin_shadow_set_right_offset(d->shadow, wl_fixed_from_double(margins.
right()));
144 org_kde_kwin_shadow_set_bottom_offset(d->shadow, wl_fixed_from_double(margins.
bottom()));
147 void Shadow::commit()
150 org_kde_kwin_shadow_commit(d->shadow);
155 #define attach( __PART__, __WAYLAND_PART__ ) \
156 void Shadow::attach##__PART__(wl_buffer *buffer) \
158 Q_ASSERT(isValid()); \
159 org_kde_kwin_shadow_attach_##__WAYLAND_PART__(d->shadow, buffer); \
161 void Shadow::attach##__PART__(Buffer *buffer) \
166 attach##__PART__(buffer->buffer()); \
168 void Shadow::attach##__PART__(Buffer::Ptr buffer) \
170 attach##__PART__(buffer.toStrongRef().data()); \
174 attach(Left, left) attach(TopLeft, top_left) attach(Top, top) attach(TopRight, top_right) attach(Right, right) attach(BottomRight, bottom_right)
175 attach(Bottom, bottom) attach(BottomLeft, bottom_left)
180 Shadow::operator org_kde_kwin_shadow *()
185 Shadow::operator org_kde_kwin_shadow *()
const
Wrapper for the org_kde_kwin_shadow interface.
void setup(org_kde_kwin_shadow_manager *compositor)
Setup this ShadowManager to manage the compositor.
Shadow * createShadow(Surface *surface, QObject *parent=nullptr)
Creates and setup a new Shadow with parent.
Wrapper for the wl_surface interface.
void destroy()
Destroys the data held by this Shadow.
void destroy()
Destroys the data held by this ShadowManager.
void release()
Releases the org_kde_kwin_shadow_manager interface.
Wrapper class for wl_event_queue interface.
void release()
Releases the org_kde_kwin_shadow interface.
void setup(org_kde_kwin_shadow *shadow)
Setup this Shadow to manage the shadow.
void setEventQueue(EventQueue *queue)
Sets the queue to use for creating a Shadow.
ShadowManager(QObject *parent=nullptr)
Creates a new ShadowManager.
qreal right() const const
qreal bottom() const const
EventQueue * eventQueue()
QObject * parent() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Jan 30 2023 03:56:24 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.