6#include <phosphortiles_export.h>
54 Q_PROPERTY(QString name READ name CONSTANT)
55 Q_PROPERTY(QString description READ description CONSTANT)
56 Q_PROPERTY(
bool supportsMasterCount READ supportsMasterCount CONSTANT)
57 Q_PROPERTY(
bool supportsSplitRatio READ supportsSplitRatio CONSTANT)
86 m_appIdResolver = std::move(resolver);
95 if (m_appIdResolver) {
96 return m_appIdResolver;
98 return [](
const QString&) {
127 virtual QString
name()
const = 0;
245 virtual
bool centerLayout() const;
255 virtual
bool isScripted() const noexcept;
266 virtual
bool supportsMinSizes() const noexcept;
276 virtual
bool supportsMemory() const noexcept;
301 virtual
bool isUserScript() const noexcept;
314 virtual
bool supportsLifecycleHooks() const noexcept;
349 virtual
void onWindowRemoved(
TilingState* state,
int windowIndex);
360 virtual
bool supportsResizeHook() const noexcept;
384 virtual
bool supportsScriptState() const noexcept;
396 virtual
bool supportsCustomParams() const noexcept;
406 virtual QVariantList customParamDefList() const;
417 virtual
bool hasCustomParam(const QString& name) const;
424 std::function<QString(const QString&)> m_appIdResolver;
429 QString m_registryId;
438 static QRect innerRect(const QRect& screenGeometry,
int outerGap);
447 static QRect innerRect(const QRect& screenGeometry, const
EdgeGaps& gaps);
456 void configurationChanged();
Algorithm-layer constants for the autotile/tile primitives.
Abstract base class for tiling algorithms.
Definition TilingAlgorithm.h:51
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:84
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:112
void setRegistryId(const QString &id)
Registry-internal setter.
Definition TilingAlgorithm.h:118
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:93
Tracks tiling state for a single screen.
Definition TilingState.h:40
Definition AutotileEngine.h:46
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