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
53{
54 switch (wire) {
55 case static_cast<int>(WindowKind::Normal):
56 return WindowKind::Normal;
57 case static_cast<int>(WindowKind::Transient):
59 default:
61 }
62}
63
65{
66 QString windowId;
67 int zonePosition = 0;
68 QString screenId;
70};
71
82
84{
85 bool shouldSnap = false;
86 QRect geometry;
87 QString zoneId;
88 QStringList zoneIds;
89 QString screenId;
96
97 bool isValid() const
98 {
99 return shouldSnap && geometry.isValid() && !zoneId.isEmpty();
100 }
101
103 {
104 return SnapResult{false, QRect(), QString(), QStringList(), QString()};
105 }
106};
107
109{
110 bool found = false;
111 QStringList zoneIds;
112 QRect geometry;
113 QString screenId;
114};
115
117{
118 QString windowId{};
119 QString sourceZoneId{};
120 QString targetZoneId{};
121 QStringList targetZoneIds{};
123 QString targetScreenId{};
124};
125
127 TreatAsNormal = 0,
128 RestoreOnly = 1,
129 IgnoreAll = 2
130};
131
132inline constexpr QLatin1StringView RestoreSentinel("__restore__");
133
134} // namespace PhosphorEngine
Definition EngineTypes.h:13
StickyWindowHandling
Definition EngineTypes.h:126
WindowKind clampWindowKindFromWire(int wire)
Clamp an integer wire value to a valid WindowKind.
Definition EngineTypes.h:52
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:73
QString layoutId
Definition EngineTypes.h:77
int virtualDesktop
Definition EngineTypes.h:76
QString screenId
Definition EngineTypes.h:75
QList< int > zoneNumbers
Definition EngineTypes.h:78
QStringList zoneIds
Definition EngineTypes.h:74
WindowKind windowKind
Closing window's kind; the consume gate refuses when both sides are concrete and disagree.
Definition EngineTypes.h:80
Definition EngineTypes.h:65
int virtualDesktop
Definition EngineTypes.h:69
QString windowId
Definition EngineTypes.h:66
QString screenId
Definition EngineTypes.h:68
int zonePosition
Definition EngineTypes.h:67
Definition EngineTypes.h:84
static SnapResult noSnap()
Definition EngineTypes.h:102
bool shouldSnap
Definition EngineTypes.h:85
QString zoneId
Definition EngineTypes.h:87
QStringList zoneIds
Definition EngineTypes.h:88
QRect geometry
Definition EngineTypes.h:86
QString screenId
Definition EngineTypes.h:89
int virtualDesktop
Target virtual desktop the snap should be committed in (1-based).
Definition EngineTypes.h:95
bool isValid() const
Definition EngineTypes.h:97
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:109
QStringList zoneIds
Definition EngineTypes.h:111
QRect geometry
Definition EngineTypes.h:112
QString screenId
Definition EngineTypes.h:113
bool found
Definition EngineTypes.h:110
Definition EngineTypes.h:117
QString windowId
Definition EngineTypes.h:118
QRect targetGeometry
Definition EngineTypes.h:122
QString targetScreenId
Definition EngineTypes.h:123
QStringList targetZoneIds
Definition EngineTypes.h:121
QString targetZoneId
Definition EngineTypes.h:120
QString sourceZoneId
Definition EngineTypes.h:119