6#include <phosphorsnapengine_export.h>
19class ICrossSurfaceResolver;
25class IZoneAdjacencyResolver;
33 if (direction == QLatin1String(
"left")) {
34 return QStringLiteral(
"right");
36 if (direction == QLatin1String(
"right")) {
37 return QStringLiteral(
"left");
39 if (direction == QLatin1String(
"up")) {
40 return QStringLiteral(
"down");
42 if (direction == QLatin1String(
"down")) {
43 return QStringLiteral(
"up");
86 std::function<void(
bool success,
const QString& action,
const QString& reason,
const QString& sourceZoneId,
87 const QString& targetZoneId,
const QString& screenId)>;
124 const QString& screenId);
127 const QString& screenId);
132 const QString& screenId);
135 const QString& screenId);
140 const QString& screenId);
147 void emitFeedback(
bool success,
const QString& action,
const QString& reason,
const QString& sourceZoneId,
148 const QString& targetZoneId,
const QString& screenId)
const
151 m_feedback(success, action, reason, sourceZoneId, targetZoneId, screenId);
163 const QString& sourceScreenId,
164 bool requireSnapNeighbour)
const;
175 const QString& direction,
176 const QString& sourceScreenId)
const;
185 QStringList windowsInZoneOnScreen(
const QString& zoneId,
const QString& screenName)
const;
190 QString firstWindowInZoneOnScreen(
const QString& zoneId,
const QString& screenName)
const;
194 IZoneAdjacencyResolver* m_zoneAdjacency =
nullptr;
196 FeedbackFn m_feedback;
197 NeighbourAutotileFn m_neighbourIsAutotile;
Resolves the neighbouring surface — output or virtual desktop — in a direction, for cross-surface win...
Definition ICrossSurfaceResolver.h:21
Definition IWindowTrackingService.h:34
Narrow interface for zone-adjacency queries used by snap navigation.
Definition IZoneAdjacencyResolver.h:28
Pure snap-mode navigation target resolver.
Definition snapnavigationtargets.h:79
PhosphorProtocol::RestoreTargetResult getRestoreForWindow(const QString &windowId, const QString &screenId)
PhosphorProtocol::SwapTargetResult getSwapTargetForWindow(const QString &windowId, const QString &direction, const QString &screenId)
void setZoneAdjacencyResolver(IZoneAdjacencyResolver *resolver)
Late setter for the zone adjacency resolver — it may not be available at construction time,...
PhosphorProtocol::MoveTargetResult getMoveTargetForWindow(const QString &windowId, const QString &direction, const QString &screenId)
void setCrossSurfaceResolver(PhosphorEngine::ICrossSurfaceResolver *resolver)
Late setter for the cross-surface resolver (neighbour output / desktop lookup).
std::function< bool(const QString &screenId)> NeighbourAutotileFn
Reports whether a neighbour OUTPUT is in autotile mode, evaluated in the engine's current (desktop,...
Definition snapnavigationtargets.h:120
SnapNavigationTargetResolver(PhosphorEngine::IWindowTrackingService *service, PhosphorZones::LayoutRegistry *layoutManager, IZoneAdjacencyResolver *zoneAdjacency, FeedbackFn feedback)
Construct the resolver with its pure dependencies.
std::function< void(bool success, const QString &action, const QString &reason, const QString &sourceZoneId, const QString &targetZoneId, const QString &screenId)> FeedbackFn
Callback shape matching WindowTrackingAdaptor::navigationFeedback.
Definition snapnavigationtargets.h:87
PhosphorProtocol::FocusTargetResult getFocusTargetForWindow(const QString &windowId, const QString &direction, const QString &screenId)
PhosphorProtocol::MoveTargetResult getSnapToZoneByNumberTarget(const QString &windowId, int zoneNumber, const QString &screenId)
PhosphorProtocol::CycleTargetResult getCycleTargetForWindow(const QString &windowId, bool forward, const QString &screenId)
PhosphorProtocol::MoveTargetResult getPushTargetForWindow(const QString &windowId, const QString &screenId)
void setNeighbourAutotileProvider(NeighbourAutotileFn fn)
Manual zone-layout registry + per-context assignment store.
Definition LayoutRegistry.h:78
Definition EngineTypes.h:13
constexpr QLatin1String LayoutRegistry("org.plasmazones.LayoutRegistry")
Definition WindowTrackingService.h:38
QString oppositeCrossingDirection(const QString &direction)
The edge a neighbour surface is entered from when crossing in direction: crossing "right" lands on th...
Definition snapnavigationtargets.h:31
Definition IWindowTrackingService.h:23
D-Bus struct for cycle navigation result: (bssss)
Definition NavigationTypes.h:72
D-Bus struct for focus navigation result: (bsssss)
Definition NavigationTypes.h:61
D-Bus struct for move/push/zone-number navigation result: (bssiiiiss)
Definition NavigationTypes.h:42
D-Bus struct for restore navigation result: (bbiiii)
Definition NavigationTypes.h:110
D-Bus struct for swap navigation result: (bssiiiissiiiisssss)
Definition NavigationTypes.h:82