6#include <phosphorsnapengine_export.h>
25class ICrossSurfaceResolver;
31class IZoneAdjacencyResolver;
69 if (direction == QLatin1String(
"left")) {
70 return QStringLiteral(
"right");
72 if (direction == QLatin1String(
"right")) {
73 return QStringLiteral(
"left");
75 if (direction == QLatin1String(
"up")) {
76 return QStringLiteral(
"down");
78 if (direction == QLatin1String(
"down")) {
79 return QStringLiteral(
"up");
125 std::function<void(
bool success,
const QString& action,
const QString& reason,
const QString& sourceZoneId,
126 const QString& targetZoneId,
const QString& screenId)>;
167 const QString& screenId);
188 const QString& screenId);
193 const QString& screenId);
196 const QString& screenId);
201 const QString& screenId);
212 bool hasDependencies()
const
214 return m_service !=
nullptr && m_layoutManager !=
nullptr;
221 void emitFeedback(
bool success,
const QString& action,
const QString& reason,
const QString& sourceZoneId,
222 const QString& targetZoneId,
const QString& screenId)
const
225 m_feedback(success, action, reason, sourceZoneId, targetZoneId, screenId);
237 const QString& sourceScreenId,
238 bool requireSnapNeighbour)
const;
249 const QString& direction,
250 const QString& sourceScreenId)
const;
259 QStringList windowsInZoneOnScreen(
const QString& zoneId,
const QString& screenName)
const;
264 QString firstWindowInZoneOnScreen(
const QString& zoneId,
const QString& screenName)
const;
268 IZoneAdjacencyResolver* m_zoneAdjacency =
nullptr;
270 FeedbackFn m_feedback;
271 NeighbourTilingFn m_neighbourIsTiling;
Resolves the neighbouring surface — output or virtual desktop — in a direction, for cross-surface win...
Definition ICrossSurfaceResolver.h:21
Definition IWindowTrackingService.h:34
Centralized screen-topology service.
Definition Manager.h:75
Narrow interface for zone-adjacency queries used by snap navigation.
Definition IZoneAdjacencyResolver.h:28
Pure snap-mode navigation target resolver.
Definition snapnavigationtargets.h:117
SpanTargetResult getSpanTargetForWindow(const QString &windowId, const QString &direction, const QString &screenId)
Compute the new zone span when the user grows/shrinks toward direction.
std::function< bool(const QString &screenId)> NeighbourTilingFn
Reports whether a neighbour OUTPUT is owned by a TILING engine — autotile or scrolling,...
Definition snapnavigationtargets.h:163
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).
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 SnapEngine::navigationFeedback (and the WindowTrackingAdaptor signal it is ul...
Definition snapnavigationtargets.h:126
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)
void setNeighbourTilingProvider(NeighbourTilingFn fn)
PhosphorProtocol::MoveTargetResult getPushTargetForWindow(const QString &windowId, const QString &screenId)
Manual zone-layout registry + per-context assignment store.
Definition LayoutRegistry.h:89
Definition EngineTypes.h:14
constexpr QLatin1String LayoutRegistry("org.plasmazones.LayoutRegistry")
Definition IWindowTrackingService.h:27
Definition SnapStateResolver.h:11
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:67
PHOSPHORSNAPENGINE_EXPORT bool isStoredScreenValid(PhosphorScreens::ScreenManager *mgr, const QString &storedScreen)
True when storedScreen still resolves on the live screen set: a physical id must be connected; a virt...
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
Result of a span (grow/shrink) target computation.
Definition snapnavigationtargets.h:37
QRect geometry
Union rect of the new span's zone geometries.
Definition snapnavigationtargets.h:47
bool success
Definition snapnavigationtargets.h:38
QString sourceZoneId
Primary zone before the change (empty when the window was unsnapped).
Definition snapnavigationtargets.h:49
QString reason
Definition snapnavigationtargets.h:39
QString screenName
Definition snapnavigationtargets.h:50
bool grew
true when the span grew into new zone(s), false when it retracted.
Definition snapnavigationtargets.h:52
QStringList zoneIds
The window's full NEW span set, primary zone first.
Definition snapnavigationtargets.h:45