Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
AutotileTypes.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 <PhosphorProtocol/phosphorprotocoltypes_export.h>
7
8#include <QList>
9#include <QMetaType>
10#include <QRect>
11#include <QString>
12
13namespace PhosphorProtocol {
14
16struct PHOSPHORPROTOCOLTYPES_EXPORT TileRequestEntry
17{
18 QString windowId;
19 int x = 0;
20 int y = 0;
21 int width = 0;
22 int height = 0;
23 QString zoneId;
24 QString screenId;
25 bool monocle = false;
26 bool floating = false;
27
28 QRect toRect() const
29 {
30 return QRect(x, y, width, height);
31 }
32
36 QString validationError() const;
37};
38
39using TileRequestList = QList<TileRequestEntry>;
40
43{
44 QString id;
45 QString name;
46 QString description;
47 bool supportsMasterCount = false;
48 bool supportsSplitRatio = false;
49 bool centerLayout = false;
51 double defaultSplitRatio = 0.5;
53 bool isScripted = false;
55 bool isUserScript = false;
56 bool supportsMemory = false;
57};
58
59using AlgorithmInfoList = QList<AlgorithmInfoEntry>;
60
64{
65 QString appId;
66 int x = 0;
67 int y = 0;
68 int width = 0;
69 int height = 0;
70 QString screenId;
71
72 QRect toRect() const
73 {
74 return QRect(x, y, width, height);
75 }
76};
77
78using PreTileGeometryList = QList<PreTileGeometryEntry>;
79
80} // namespace PhosphorProtocol
81
82Q_DECLARE_METATYPE(PhosphorProtocol::TileRequestEntry)
83Q_DECLARE_METATYPE(PhosphorProtocol::TileRequestList)
D-Bus marshalling for the autotile value types (see AutotileTypes.h).
Definition AutotileMarshalling.h:16
QList< TileRequestEntry > TileRequestList
Definition AutotileTypes.h:39
QList< AlgorithmInfoEntry > AlgorithmInfoList
Definition AutotileTypes.h:59
QList< PreTileGeometryEntry > PreTileGeometryList
Definition AutotileTypes.h:78
D-Bus struct for algorithm metadata: (sssbbbbdibsbb)
Definition AutotileTypes.h:43
bool producesOverlappingZones
Definition AutotileTypes.h:50
bool supportsMasterCount
Definition AutotileTypes.h:47
bool supportsSplitRatio
Definition AutotileTypes.h:48
QString id
Definition AutotileTypes.h:44
QString name
Definition AutotileTypes.h:45
bool isScripted
Definition AutotileTypes.h:53
QString zoneNumberDisplay
Definition AutotileTypes.h:54
QString description
Definition AutotileTypes.h:46
bool supportsMemory
Definition AutotileTypes.h:56
int defaultMaxWindows
Definition AutotileTypes.h:52
bool isUserScript
Definition AutotileTypes.h:55
bool centerLayout
Definition AutotileTypes.h:49
double defaultSplitRatio
Definition AutotileTypes.h:51
D-Bus struct for pre-tile geometry entries: (siiiiis) Replaces the JSON blob previously returned by g...
Definition AutotileTypes.h:64
int height
Definition AutotileTypes.h:69
int width
Definition AutotileTypes.h:68
QString screenId
Definition AutotileTypes.h:70
int x
Definition AutotileTypes.h:66
int y
Definition AutotileTypes.h:67
QRect toRect() const
Definition AutotileTypes.h:72
QString appId
Definition AutotileTypes.h:65
D-Bus struct for autotile tile requests: (siiiissbb)
Definition AutotileTypes.h:17
QString windowId
Definition AutotileTypes.h:18
QString validationError() const
Returns empty QString if valid, or a human-readable description of the invariant violation.
QRect toRect() const
Definition AutotileTypes.h:28
QString screenId
Definition AutotileTypes.h:24
QString zoneId
Definition AutotileTypes.h:23