Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
EngineTypes.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 fuddlesworth
2// SPDX-License-Identifier: LGPL-2.1-or-later
3
4#pragma once
5
6#include <QHashFunctions>
7#include <QLatin1StringView>
8#include <QList>
9#include <QRect>
10#include <QString>
11#include <QStringList>
12
13namespace PhosphorEngine {
14
16{
17 QString screenId;
18 int desktop = 1;
19 QString activity;
20
21 bool operator==(const TilingStateKey& other) const
22 {
23 return screenId == other.screenId && desktop == other.desktop && activity == other.activity;
24 }
25};
26
27inline size_t qHash(const TilingStateKey& key, size_t seed = 0)
28{
29 return qHashMulti(seed, key.screenId, key.desktop, key.activity);
30}
31
32enum class SnapIntent {
35};
36
39enum class WindowKind : int {
40 Unknown = 0,
41 Normal = 1,
42 Transient = 2,
43};
44
46{
47 QString windowId;
49 QList<int> allZonePositions;
50 QString screenId;
52};
53
64
66{
67 bool shouldSnap = false;
68 QRect geometry;
69 QString zoneId;
70 QStringList zoneIds;
71 QString screenId;
72
73 bool isValid() const
74 {
75 return shouldSnap && geometry.isValid() && !zoneId.isEmpty();
76 }
77
79 {
80 return SnapResult{false, QRect(), QString(), QStringList(), QString()};
81 }
82};
83
85{
86 bool found = false;
87 QStringList zoneIds;
88 QRect geometry;
89 QString screenId;
90};
91
93{
94 QString windowId{};
95 QString sourceZoneId{};
96 QString targetZoneId{};
97 QStringList targetZoneIds{};
99 QString targetScreenId{};
100};
101
103 TreatAsNormal = 0,
104 RestoreOnly = 1,
105 IgnoreAll = 2
106};
107
108inline constexpr QLatin1StringView RestoreSentinel("__restore__");
109
110} // namespace PhosphorEngine
Definition EngineTypes.h:13
StickyWindowHandling
Definition EngineTypes.h:102
size_t qHash(const TilingStateKey &key, size_t seed=0)
Definition EngineTypes.h:27
SnapIntent
Definition EngineTypes.h:32
constexpr QLatin1StringView RestoreSentinel("__restore__")
WindowKind
Coarse structural classification for the snap-restore consume gate.
Definition EngineTypes.h:39
Definition EngineTypes.h:55
QString layoutId
Definition EngineTypes.h:59
int virtualDesktop
Definition EngineTypes.h:58
QString screenId
Definition EngineTypes.h:57
QList< int > zoneNumbers
Definition EngineTypes.h:60
QStringList zoneIds
Definition EngineTypes.h:56
WindowKind windowKind
Closing window's kind; the consume gate refuses when both sides are concrete and disagree.
Definition EngineTypes.h:62
Definition EngineTypes.h:46
int virtualDesktop
Definition EngineTypes.h:51
QString windowId
Definition EngineTypes.h:47
QList< int > allZonePositions
Definition EngineTypes.h:49
QString screenId
Definition EngineTypes.h:50
int zonePosition
Definition EngineTypes.h:48
Definition EngineTypes.h:66
static SnapResult noSnap()
Definition EngineTypes.h:78
bool shouldSnap
Definition EngineTypes.h:67
QString zoneId
Definition EngineTypes.h:69
QStringList zoneIds
Definition EngineTypes.h:70
QRect geometry
Definition EngineTypes.h:68
QString screenId
Definition EngineTypes.h:71
bool isValid() const
Definition EngineTypes.h:73
Definition EngineTypes.h:16
bool operator==(const TilingStateKey &other) const
Definition EngineTypes.h:21
int desktop
Definition EngineTypes.h:18
QString activity
Definition EngineTypes.h:19
QString screenId
Definition EngineTypes.h:17
Definition EngineTypes.h:85
QStringList zoneIds
Definition EngineTypes.h:87
QRect geometry
Definition EngineTypes.h:88
QString screenId
Definition EngineTypes.h:89
bool found
Definition EngineTypes.h:86
Definition EngineTypes.h:93
QString windowId
Definition EngineTypes.h:94
QRect targetGeometry
Definition EngineTypes.h:98
QString targetScreenId
Definition EngineTypes.h:99
QStringList targetZoneIds
Definition EngineTypes.h:97
QString targetZoneId
Definition EngineTypes.h:96
QString sourceZoneId
Definition EngineTypes.h:95