KWin
Loading...
Searching...
No Matches
customtile.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2022 Marco Martin <mart@kde.org>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9
10#pragma once
11
12#include "tile.h"
13
14#include <kwin_export.h>
15
16namespace KWin
17{
18
19class KWIN_EXPORT CustomTile : public Tile
20{
21 Q_OBJECT
22 Q_PROPERTY(KWin::Tile::LayoutDirection layoutDirection READ layoutDirection WRITE setLayoutDirection NOTIFY layoutDirectionChanged)
23
24public:
25 CustomTile(TileManager *tiling, CustomTile *parentItem = nullptr);
26
27 CustomTile *createChildAt(const QRectF &relativeGeometry, LayoutDirection direction, int position);
28
29 void setRelativeGeometry(const QRectF &geom) override;
30 bool supportsResizeGravity(KWin::Gravity gravity) override;
31
35 Q_INVOKABLE void moveByPixels(const QPointF &delta);
36 Q_INVOKABLE void remove();
37 Q_INVOKABLE void split(KWin::Tile::LayoutDirection newDirection);
38
39 void setLayoutDirection(Tile::LayoutDirection dir);
40 // Own direction
41 Tile::LayoutDirection layoutDirection() const;
42
43 CustomTile *nextTileAt(Qt::Edge edge) const;
44
45Q_SIGNALS:
48
49private:
50 Tile::LayoutDirection m_layoutDirection = LayoutDirection::Floating;
51 bool m_geometryLock = false;
52};
53
54class RootTile : public CustomTile
55{
56 Q_OBJECT
57public:
58 RootTile(TileManager *tiling);
59};
60
61KWIN_EXPORT QDebug operator<<(QDebug debug, const CustomTile *tile);
62
63} // namespace KWin
void layoutDirectionChanged(Tile::LayoutDirection direction)
RootTile(TileManager *tiling)
LayoutDirection
Definition tile.h:40
Gravity
Definition globals.h:150
QDebug & operator<<(QDebug &s, const KWin::DrmConnector *obj)