KWin
Loading...
Searching...
No Matches
placement.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: 1999, 2000 Matthias Ettrich <ettrich@kde.org>
6 SPDX-FileCopyrightText: 1997-2002 Cristian Tibirna <tibirna@kde.org>
7 SPDX-FileCopyrightText: 2003 Lubos Lunak <l.lunak@kde.org>
8
9 SPDX-License-Identifier: GPL-2.0-or-later
10*/
11
12#pragma once
13// KWin
14#include "options.h"
15// Qt
16#include <QList>
17#include <QPoint>
18#include <QRect>
19
20class QObject;
21
22namespace KWin
23{
24
25class VirtualDesktop;
26class Window;
27
28class KWIN_EXPORT Placement
29{
30public:
31 explicit Placement();
32
33 void place(Window *c, const QRectF &area);
34 void placeSmart(Window *c, const QRectF &area, PlacementPolicy next = PlacementUnknown);
35
36 void placeCentered(Window *c, const QRectF &area, PlacementPolicy next = PlacementUnknown);
37
38 void reinitCascading();
39 void reinitCascading(VirtualDesktop *desktop);
40
41 void cascadeIfCovering(Window *c, const QRectF &area);
42
46 void cascadeDesktop();
50 void unclutterDesktop();
51
52 static const char *policyToString(PlacementPolicy policy);
53
54private:
55 void place(Window *c, const QRectF &area, PlacementPolicy policy, PlacementPolicy nextPlacement = PlacementUnknown);
56 void placeUnderMouse(Window *c, const QRect &area, PlacementPolicy next = PlacementUnknown);
57 void placeOnMainWindow(Window *c, const QRect &area, PlacementPolicy next = PlacementUnknown);
58 void placeTransient(Window *c);
59
60 void placeAtRandom(Window *c, const QRect &area, PlacementPolicy next = PlacementUnknown);
61 void placeCascaded(Window *c, const QRect &area, PlacementPolicy next = PlacementUnknown);
62 void placeMaximizing(Window *c, const QRect &area, PlacementPolicy next = PlacementUnknown);
63 void placeZeroCornered(Window *c, const QRect &area, PlacementPolicy next = PlacementUnknown);
64 void placeDialog(Window *c, const QRect &area, PlacementPolicy next = PlacementUnknown);
65 void placeUtility(Window *c, const QRect &area, PlacementPolicy next = PlacementUnknown);
66 void placeOnScreenDisplay(Window *c, const QRect &area);
67
68 // CT needed for cascading+
69 struct DesktopCascadingInfo
70 {
71 QPoint pos;
72 int col;
73 int row;
74 };
75
76 QHash<VirtualDesktop *, DesktopCascadingInfo> cci;
77};
78
79} // namespace
PlacementPolicy
Definition options.h:57
@ PlacementUnknown
Definition options.h:60