8#include <PhosphorLayer/phosphorlayer_export.h>
18class ILayerShellTransport;
19class IQmlEngineProvider;
21class ISurfaceAnimator;
127 static_assert(std::is_base_of_v<Surface, T>,
"T must derive from PhosphorLayer::Surface");
128 auto sdeps = validateAndPrepareDeps(cfg);
132 return new T(
Surface::CtorToken{}, std::move(cfg), std::move(*sdeps), parent ? parent :
this);
151 std::unique_ptr<Impl> m_impl;
Abstracts the layer-shell protocol binding.
Definition ILayerShellTransport.h:111
Hook point for consumer-controlled QQmlEngine ownership policy.
Definition IQmlEngineProvider.h:32
Source-of-truth interface for the available QScreen set.
Definition IScreenProvider.h:62
Hook point for show/hide transitions on Surfaces.
Definition ISurfaceAnimator.h:50
Stateless constructor for Surfaces.
Definition SurfaceFactory.h:35
const Deps & deps() const noexcept
~SurfaceFactory() override
SurfaceFactory(Deps deps, QObject *parent=nullptr)
T * createAs(SurfaceConfig cfg, QObject *parent=nullptr)
Create a Surface subclass from a config.
Definition SurfaceFactory.h:125
Surface * create(SurfaceConfig cfg, QObject *parent=nullptr)
Create a Surface from a config.
Opaque construction token — only SurfaceFactory can create instances of it.
Definition Surface.h:222
One layer-shell surface with a managed lifecycle.
Definition Surface.h:99
Definition SurfaceAnimator.h:26
Immutable per-surface configuration passed to SurfaceFactory::create().
Definition SurfaceConfig.h:46
Bundle of dependencies the Surface inherits from the factory.
Definition Surface.h:42
Dependency bundle for SurfaceFactory.
Definition SurfaceFactory.h:49
QString loggingCategory
Logging category name for internal diagnostics. Empty → "phosphorlayer".
Definition SurfaceFactory.h:79