- Qt 6.10
- Qt Wayland Compositor
- C++ Classes
- QWaylandShellSurfaceTemplate
- Qt Wayland Compositor | Commercial or GPLv3

# QWaylandShellSurfaceTemplate Class

template <typename T> class QWaylandShellSurfaceTemplate

QWaylandShellSurfaceTemplate is a convenience class for creating custom shell surface classes. More...

Header: | `#include <QWaylandShellSurfaceTemplate>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)` `target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)`
qmake: | `QT += waylandcompositor`
Inherits: | QWaylandShellSurface
Inherited By: | QWaylandIviSurface, QWaylandWlShellSurface, and QWaylandXdgSurface

- List of all members, including inherited members

## Static Public Members

T * | findIn(QWaylandObject *container)

## Detailed Description

QWaylandShellSurfaceTemplate is a template class which inherits from QWaylandShellSurface and is convenience for building custom shell extensions.

It provides the connection between Qt Wayland Compositor and the class generated by `qtwaylandscanner`, based on the XML description of the extension protocol.

It provides two specific pieces of convenience:

- A reimplementation of QWaylandCompositorExtension::extensionInterface() which returns the `wl_interface` pointer for the qtwaylandscanner-generated base class.
- A static findIn() function which searches for an instance of the extension in a provided container, and returns this if it is found.

The same usage pattern applies as for QWaylandCompositorExtensionTemplate.

See also Custom Shell.

## Member Function Documentation

### `[static]` T *QWaylandShellSurfaceTemplate::findIn(QWaylandObject *container)

If any instance of the interface has been registered with container, this is returned. Otherwise null is returned. The look-up is based on the generated `interfaceName()` which matches the interface name in the protocol description.