Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
IPlacementState.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 <phosphorengine_export.h>
7#include <QJsonObject>
8#include <QRect>
9#include <QString>
10#include <QStringList>
11
12namespace PhosphorEngine {
13
25class PHOSPHORENGINE_EXPORT IPlacementState
26{
27public:
28 virtual ~IPlacementState() = default;
29
31 virtual QString screenId() const = 0;
32
34 virtual int windowCount() const = 0;
35
37 virtual QStringList managedWindows() const = 0;
38
40 virtual bool containsWindow(const QString& windowId) const = 0;
41
43 virtual bool isFloating(const QString& windowId) const = 0;
44
46 virtual QStringList floatingWindows() const = 0;
47
51 virtual QString placementIdForWindow(const QString& windowId) const = 0;
52
54 virtual int tiledWindowCount() const
55 {
56 return 0;
57 }
58
60 virtual int masterCount() const
61 {
62 return 1;
63 }
64
66 virtual QJsonObject toJson() const = 0;
67};
68
69} // namespace PhosphorEngine
Per-screen placement state contract.
Definition IPlacementState.h:26
virtual QJsonObject toJson() const =0
Serialize to JSON for session persistence.
virtual int masterCount() const
Number of master windows (autotile concept; snap returns 1).
Definition IPlacementState.h:60
virtual QStringList floatingWindows() const =0
All currently-floating windows.
virtual bool isFloating(const QString &windowId) const =0
Whether the window is floating (excluded from placement).
virtual int windowCount() const =0
Total number of managed windows (tiled + floating).
virtual int tiledWindowCount() const
Number of tiled (non-floating) windows in the managed set.
Definition IPlacementState.h:54
virtual QStringList managedWindows() const =0
All windows managed by this state (tiled + floating).
virtual bool containsWindow(const QString &windowId) const =0
Whether the window is in this state's managed set.
virtual QString placementIdForWindow(const QString &windowId) const =0
Opaque placement identifier for the window's current slot.
virtual ~IPlacementState()=default
virtual QString screenId() const =0
Screen this state object manages.
Definition EngineTypes.h:13