4#include <QWaylandCompositor>
9#include <wayland-server.h>
113 qCWarning(qLcWaylandCompositor) <<
"Failed to find QWaylandCompositor when initializing QWaylandXdgOutputManagerV1";
124 return QWaylandXdgOutputManagerV1Private::interface();
132 xdgOutputs[
output] = xdgOutput;
144 wl_resource *outputResource)
152 "The client is requesting a QWaylandXdgOutputV1 for a "
153 "QWaylandOutput that doesn't exist");
154 wl_resource_post_error(resource->handle, WL_DISPLAY_ERROR_INVALID_OBJECT,
"output not found");
161 "The client is requesting a QWaylandXdgOutputV1 that the compositor "
162 "didn't create before");
163 wl_resource_post_error(resource->handle, WL_DISPLAY_ERROR_INVALID_OBJECT,
164 "compositor didn't create a QWaylandXdgOutputV1 for this zxdg_output_v1 object");
169 auto *xdgOutput = xdgOutputs[
output];
172 xdgOutputPrivate->setManager(
q);
173 xdgOutputPrivate->setOutput(
output);
174 xdgOutputPrivate->add(resource->client(),
id,
qMin(resource->version(), QWaylandXdgOutputV1Private::interfaceVersion()));
286 if (
d->initialized) {
287 qCWarning(qLcWaylandCompositor,
"QWaylandXdgOutputV1::name cannot be changed after initialization");
316 return d->description;
327 if (
d->initialized) {
328 qCWarning(qLcWaylandCompositor,
"QWaylandXdgOutputV1::description cannot be changed after initialization");
353 return d->logicalPos;
364 if (
d->initialized) {
405 return d->logicalSize;
412 if (
d->logicalSize ==
size)
415 d->logicalSize =
size;
416 if (
d->initialized) {
417 d->sendLogicalSize(
size);
447 return QRect(
d->logicalPos,
d->logicalSize);
454 const auto values = resourceMap().values();
455 for (
auto *resource :
values)
462 const auto values = resourceMap().values();
463 for (
auto *resource :
values)
464 send_logical_size(resource->handle,
size.width(),
size.height());
471 const auto values = resourceMap().values();
472 for (
auto *resource :
values) {
473 if (resource->version() < 3)
474 send_done(resource->handle);
486 "Cannot associate a null QWaylandXdgOutputManagerV1 to QWaylandXdgOutputV1 %p",
this);
495 "Cannot associate a different QWaylandXdgOutputManagerV1 to QWaylandXdgOutputV1 %p "
496 "after initialization",
this);
501 emit q->managerChanged();
510 "Cannot associate a null QWaylandOutput to QWaylandXdgOutputV1 %p",
this);
519 "Cannot associate a different QWaylandOutput to QWaylandXdgOutputV1 %p "
520 "after initialization",
this);
530 if (
auto *
m = qobject_cast<QWaylandXdgOutputManagerV1 *>(
p)) {
532 emit q->managerChanged();
538 emit q->outputChanged();
549 if (resource->version() >= ZXDG_OUTPUT_V1_NAME_SINCE_VERSION)
550 send_name(resource->handle,
name);
551 if (resource->version() >= ZXDG_OUTPUT_V1_DESCRIPTION_SINCE_VERSION)
553 send_done(resource->handle);
560 wl_resource_destroy(resource->handle);
565#include "moc_qwaylandxdgoutputv1.cpp"
bool remove(const Key &key)
Removes the item that has the key from the hash.
bool contains(const Key &key) const noexcept
Returns true if the hash contains an item with the key; otherwise returns false.
QObject * parent() const
Returns a pointer to the parent object.
\inmodule QtCore\reentrant
constexpr int x() const noexcept
Returns the x coordinate of this point.
constexpr int y() const noexcept
Returns the y coordinate of this point.
\inmodule QtCore\reentrant
constexpr int height() const noexcept
Returns the height.
constexpr int width() const noexcept
Returns the width.
\macro QT_RESTRICTED_CAST_FROM_ASCII
\inmodule QtWaylandCompositor
virtual void initialize()
Initializes the QWaylandCompositorExtension.
QWaylandObject * extensionContainer() const
\qmltype WaylandCompositor \instantiates QWaylandCompositor \inqmlmodule QtWayland....
QPointer< QWaylandXdgOutputV1 > xdgOutput
static QWaylandOutputPrivate * get(QWaylandOutput *output)
\qmltype WaylandOutput \instantiates QWaylandOutput \inqmlmodule QtWayland.Compositor
static QWaylandOutput * fromResource(wl_resource *resource)
Returns the QWaylandOutput corresponding to resource.
static QWaylandXdgOutputManagerV1Private * get(QWaylandXdgOutputManagerV1 *manager)
void unregisterXdgOutput(QWaylandOutput *output)
void zxdg_output_manager_v1_get_xdg_output(Resource *resource, uint32_t id, wl_resource *outputResource) override
void registerXdgOutput(QWaylandOutput *output, QWaylandXdgOutputV1 *xdgOutput)
\qmltype XdgOutputManagerV1 \instantiates QWaylandXdgOutputManagerV1 \inqmlmodule QtWayland....
static const wl_interface * interface()
Returns the Wayland interface for QWaylandXdgOutputManagerV1.
void initialize() override
Initializes the extension.
QWaylandXdgOutputManagerV1()
Constructs a QWaylandXdgOutputManagerV1 object.
void zxdg_output_v1_destroy(Resource *resource) override
void sendLogicalSize(const QSize &size)
void sendLogicalPosition(const QPoint &position)
QWaylandXdgOutputManagerV1 * manager
static QWaylandXdgOutputV1Private * get(QWaylandXdgOutputV1 *xdgOutput)
void zxdg_output_v1_bind_resource(Resource *resource) override
void setOutput(QWaylandOutput *output)
void setManager(QWaylandXdgOutputManagerV1 *manager)
QPoint logicalPosition
\qmlproperty point XdgOutputV1::logicalPosition
~QWaylandXdgOutputV1() override
QRect logicalGeometry
\qmlproperty rect XdgOutputV1::logicalGeometry \readonly
void logicalGeometryChanged()
QString name
\qmlproperty string XdgOutputV1::name
QWaylandOutput * output
\qmlproperty WaylandOutput XdgOutputV1::output \readonly
QSize logicalSize
\qmlproperty size XdgOutputV1::logicalSize
void setLogicalSize(const QSize &size)
QString description
\qmlproperty string XdgOutputV1::description
void descriptionChanged()
void setName(const QString &name)
void setDescription(const QString &name)
void setLogicalPosition(const QPoint &position)
void logicalSizeChanged()
QWaylandXdgOutputManagerV1 * manager
\qmlproperty XdgOutputManagerV1 XdgOutputV1::manager \readonly
void logicalPositionChanged()
Combined button and popup list for selecting options.
#define qCWarning(category,...)
constexpr const T & qMin(const T &a, const T &b)
static QOpenGLCompositor * compositor
GLenum GLsizei GLsizei GLint * values
[15]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLdouble GLdouble GLdouble GLdouble q
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
QT_BEGIN_NAMESPACE typedef uchar * output
QNetworkAccessManager manager