KWayland
7 #include "event_queue.h"
9 #include "wayland_pointer_p.h"
11 #include <wayland-idle-client-protocol.h>
17 class Q_DECL_HIDDEN Idle::Private
20 WaylandPointer<org_kde_kwin_idle, org_kde_kwin_idle_destroy> manager;
21 EventQueue *queue =
nullptr;
47 return d->manager.isValid();
53 Q_ASSERT(!d->manager.isValid());
54 d->manager.setup(manager);
72 auto i = org_kde_kwin_idle_get_idle_timeout(d->manager, *seat, msecs);
74 d->queue->addProxy(i);
80 Idle::operator org_kde_kwin_idle *()
const
85 Idle::operator org_kde_kwin_idle *()
90 class Q_DECL_HIDDEN IdleTimeout::Private
93 explicit Private(IdleTimeout *q);
94 void setup(org_kde_kwin_idle_timeout *d);
96 WaylandPointer<org_kde_kwin_idle_timeout, org_kde_kwin_idle_timeout_release> timeout;
99 static void idleCallback(
void *data, org_kde_kwin_idle_timeout *org_kde_kwin_idle_timeout);
100 static void resumedCallback(
void *data, org_kde_kwin_idle_timeout *org_kde_kwin_idle_timeout);
101 static const struct org_kde_kwin_idle_timeout_listener s_listener;
106 const org_kde_kwin_idle_timeout_listener IdleTimeout::Private::s_listener = {idleCallback, resumedCallback};
108 void IdleTimeout::Private::idleCallback(
void *data, org_kde_kwin_idle_timeout *org_kde_kwin_idle_timeout)
110 Q_UNUSED(org_kde_kwin_idle_timeout)
111 Q_EMIT
reinterpret_cast<Private *
>(data)->q->idle();
114 void IdleTimeout::Private::resumedCallback(
void *data, org_kde_kwin_idle_timeout *org_kde_kwin_idle_timeout)
116 Q_UNUSED(org_kde_kwin_idle_timeout)
117 Q_EMIT
reinterpret_cast<Private *
>(data)->q->resumeFromIdle();
120 IdleTimeout::Private::Private(IdleTimeout *q)
125 void IdleTimeout::Private::setup(org_kde_kwin_idle_timeout *d)
128 Q_ASSERT(!timeout.isValid());
130 org_kde_kwin_idle_timeout_add_listener(timeout, &s_listener,
this);
135 , d(new Private(this))
139 IdleTimeout::~IdleTimeout()
146 d->timeout.destroy();
151 d->timeout.release();
156 return d->timeout.isValid();
161 d->setup(dataDevice);
167 org_kde_kwin_idle_timeout_simulate_user_activity(d->timeout);
170 IdleTimeout::operator org_kde_kwin_idle_timeout *()
175 IdleTimeout::operator org_kde_kwin_idle_timeout *()
const
EventQueue * eventQueue()
void destroy()
Destroys the data held by this Idle.
IdleTimeout * getTimeout(quint32 msecs, Seat *seat, QObject *parent=nullptr)
Creates a new IdleTimeout for the seat.
void destroy()
Destroys the data held by this IdleTimeout.
Wrapper class for wl_event_queue interface.
Wrapper for the wl_seat interface.
void simulateUserActivity()
Simulates user activity.
Wrapper for the org_kde_kwin_idle_timeout interface.
void setup(org_kde_kwin_idle_timeout *timeout)
Setup this IdleTimeout to manage the timeout.
Idle(QObject *parent=nullptr)
Creates a new Idle.
void setEventQueue(EventQueue *queue)
Sets the queue to use for creating a IdleTimeout.
void release()
Releases the org_kde_kwin_idle_timeout interface.
void release()
Releases the org_kde_kwin_idle interface.
QObject * parent() const const
IdleTimeout(QObject *parent=nullptr)
To create an IdleTimeout prefer using Idle::getTimeout which sets up the IdleTimeout to be fully func...
void setup(org_kde_kwin_idle *manager)
Setup this Idle to manage the manager.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Tue Feb 7 2023 03:56:21 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.