6#include <phosphortiles_export.h>
57 Q_PROPERTY(QString name READ name CONSTANT)
58 Q_PROPERTY(QString description READ description CONSTANT)
59 Q_PROPERTY(
bool supportsMasterCount READ supportsMasterCount CONSTANT)
60 Q_PROPERTY(
bool supportsSplitRatio READ supportsSplitRatio CONSTANT)
89 m_appIdResolver = std::move(resolver);
98 if (m_appIdResolver) {
99 return m_appIdResolver;
101 return [](
const QString&) {
130 virtual QString
name()
const = 0;
255 virtual
bool centerLayout() const;
268 virtual
bool supportsSingleWindow() const noexcept;
280 virtual
bool retilesOnFocusChange() const noexcept;
290 virtual
bool isScripted() const noexcept;
311 virtual
bool supportsMinSizes() const noexcept;
332 virtual QString overlapStacking() const noexcept;
342 virtual
bool supportsMemory() const noexcept;
367 virtual
bool isUserScript() const noexcept;
380 virtual
bool supportsLifecycleHooks() const noexcept;
415 virtual
void onWindowRemoved(
TilingState* state,
int windowIndex);
426 virtual
bool supportsResizeHook() const noexcept;
450 virtual
bool supportsScriptState() const noexcept;
462 virtual
bool supportsCustomParams() const noexcept;
472 virtual QVariantList customParamDefList() const;
483 virtual
bool hasCustomParam(const QString& name) const;
490 std::function<QString(const QString&)> m_appIdResolver;
495 QString m_registryId;
504 static QRect innerRect(const QRect& screenGeometry,
int outerGap);
513 static QRect innerRect(const QRect& screenGeometry, const
EdgeGaps& gaps);
522 void configurationChanged();
Algorithm-layer constants for the autotile/tile primitives.
Abstract base class for tiling algorithms.
Definition TilingAlgorithm.h:54
void setAppIdResolver(std::function< QString(const QString &)> resolver)
Inject a resolver that maps an opaque instance id to its live app class.
Definition TilingAlgorithm.h:87
virtual bool supportsSplitRatio() const
Check if algorithm supports split ratio adjustment.
TilingAlgorithm(const TilingAlgorithm &)=delete
virtual int minimumWindows() const
Get minimum number of windows for meaningful tiling.
TilingAlgorithm(QObject *parent=nullptr)
~TilingAlgorithm() override=default
virtual QVector< QRect > calculateZones(const TilingParams ¶ms) const =0
Calculate zone geometries for N windows.
TilingAlgorithm & operator=(const TilingAlgorithm &)=delete
virtual qreal defaultSplitRatio() const
Get default split ratio for this algorithm.
QString registryId() const
The id this algorithm is registered under.
Definition TilingAlgorithm.h:115
void setRegistryId(const QString &id)
Registry-internal setter.
Definition TilingAlgorithm.h:121
virtual QString description() const =0
Description of the algorithm behavior.
virtual QString zoneNumberDisplay() const noexcept
How zone numbers should be displayed in previews.
virtual int defaultMaxWindows() const
Get default maximum number of windows for this algorithm.
virtual int masterZoneIndex() const
Get the index of the "master" zone (if applicable)
virtual bool producesOverlappingZones() const
Whether this algorithm intentionally produces overlapping zones.
virtual bool supportsMasterCount() const
Check if algorithm supports variable master count.
virtual QString name() const =0
Human-readable name of the algorithm.
std::function< QString(const QString &)> appIdResolver() const
Access the current resolver.
Definition TilingAlgorithm.h:96
Tracks tiling state for a single screen.
Definition TilingState.h:40
Definition AutotileEngine.h:59
Per-side edge gap values (resolved, non-negative pixel values)
Definition EdgeGaps.h:27
Describes an interactive resize that triggered a retile.
Definition TilingParams.h:51
Parameters for zone calculation.
Definition TilingParams.h:84