KWayland
7 #include "wayland_pointer_p.h"
12 #include <wayland-client-protocol.h>
18 class Q_DECL_HIDDEN
Region::Private
22 void installRegion(
const QRect &rect);
23 void installRegion(
const QRegion ®ion);
24 void uninstallRegion(
const QRect &rect);
25 void uninstallRegion(
const QRegion ®ion);
27 WaylandPointer<wl_region, wl_region_destroy> region;
31 Region::Private::Private(
const QRegion ®ion)
36 void Region::Private::installRegion(
const QRect &rect)
38 if (!region.isValid()) {
41 wl_region_add(region, rect.
x(), rect.
y(), rect.
width(), rect.
height());
44 void Region::Private::installRegion(
const QRegion ®ion)
46 for (
const QRect &rect : region) {
51 void Region::Private::uninstallRegion(
const QRect &rect)
53 if (!region.isValid()) {
56 wl_region_subtract(region, rect.
x(), rect.
y(), rect.
width(), rect.
height());
59 void Region::Private::uninstallRegion(
const QRegion ®ion)
61 for (
const QRect &rect : region) {
62 uninstallRegion(rect);
68 , d(new Private(region))
82 void Region::destroy()
87 void Region::setup(wl_region *region)
90 d->region.setup(region);
91 d->installRegion(d->qtRegion);
94 bool Region::isValid()
const
96 return d->region.isValid();
99 void Region::add(
const QRect &rect)
101 d->qtRegion = d->qtRegion.united(rect);
102 d->installRegion(rect);
107 d->qtRegion = d->qtRegion.united(region);
108 d->installRegion(region);
111 void Region::subtract(
const QRect &rect)
113 d->qtRegion = d->qtRegion.subtracted(rect);
114 d->uninstallRegion(rect);
119 d->qtRegion = d->qtRegion.subtracted(region);
120 d->uninstallRegion(region);
128 Region::operator wl_region *()
const
133 Region::operator wl_region *()
141 #include "moc_region.cpp"
virtual void release(quint64 objid)
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Sep 25 2023 03:47:37 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.