25class KWIN_EXPORT
Tile :
public QObject
28 Q_PROPERTY(QRectF relativeGeometry READ relativeGeometry WRITE setRelativeGeometry NOTIFY relativeGeometryChanged)
29 Q_PROPERTY(QRectF absoluteGeometry READ absoluteGeometry NOTIFY absoluteGeometryChanged)
30 Q_PROPERTY(QRectF absoluteGeometryInScreen READ absoluteGeometryInScreen NOTIFY absoluteGeometryChanged)
31 Q_PROPERTY(qreal padding READ padding WRITE setPadding NOTIFY paddingChanged)
32 Q_PROPERTY(
int positionInLayout READ row NOTIFY rowChanged)
33 Q_PROPERTY(
Tile *parent READ parentTile CONSTANT)
34 Q_PROPERTY(QList<
KWin::
Tile *> tiles READ childTiles NOTIFY childTilesChanged)
35 Q_PROPERTY(QList<
KWin::
Window *> windows READ windows NOTIFY windowsChanged)
36 Q_PROPERTY(
bool isLayout READ isLayout NOTIFY isLayoutChanged)
37 Q_PROPERTY(
bool canBeRemoved READ canBeRemoved CONSTANT)
45 Q_ENUM(LayoutDirection)
50 void setGeometryFromWindow(
const QRectF &geom);
51 void setGeometryFromAbsolute(
const QRectF &geom);
52 virtual void setRelativeGeometry(
const QRectF &geom);
54 virtual bool supportsResizeGravity(
Gravity gravity);
59 QRectF relativeGeometry()
const;
64 QRectF absoluteGeometry()
const;
70 QRectF absoluteGeometryInScreen()
const;
75 QRectF windowGeometry()
const;
80 QRectF maximizedWindowGeometry()
const;
82 bool isLayout()
const;
83 bool canBeRemoved()
const;
85 qreal padding()
const;
86 void setPadding(qreal padding);
88 QuickTileMode quickTileMode()
const;
89 void setQuickTileMode(QuickTileMode mode);
94 QList<Tile *> childTiles()
const;
99 QList<Tile *> descendants()
const;
104 void visitDescendants(std::function<
void(
const Tile *child)> callback)
const;
106 void resizeFromGravity(
Gravity gravity,
int x_root,
int y_root);
108 Q_INVOKABLE
void resizeByPixels(qreal delta, Qt::Edge edge);
110 void addWindow(
Window *window);
111 void removeWindow(
Window *window);
112 QList<KWin::Window *> windows()
const;
115 int childCount()
const;
116 Tile *childTile(
int row);
117 Tile *nextSibling()
const;
118 Tile *previousSibling()
const;
119 Tile *parentTile()
const;
124 return s_minimumSize;
127 void destroyChild(
Tile *tile);
132 T *t =
new T(m_tiling,
static_cast<T *
>(
this));
133 t->setRelativeGeometry(relativeGeometry);
134 insertChild(position, t);
151 void insertChild(
int position,
Tile *item);
152 void removeChild(
Tile *child);
155 QList<Tile *> m_children;
156 QList<Window *> m_windows;
160 QRectF m_relativeGeometry;
161 static QSizeF s_minimumSize;
162 QuickTileMode m_quickTileMode = QuickTileFlag::None;
163 qreal m_padding = 4.0;