1 /********************************************************************
2 KWin - the KDE window manager
3 This file is part of the KDE project.
5 Copyright (C) 1999, 2000 Matthias Ettrich <ettrich@kde.org>
6 Copyright (C) 1997 to 2002 Cristian Tibirna <tibirna@kde.org>
7 Copyright (C) 2003 Lubos Lunak <l.lunak@kde.org>
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
21 *********************************************************************/
23 #ifndef KWIN_PLACEMENT_H
24 #define KWIN_PLACEMENT_H
40 Placement(Workspace
* w
);
43 * Placement policies. How workspace decides the way windows get positioned
44 * on the screen. The better the policy, the heavier the resource use.
45 * Normally you don't have to worry. What the WM adds to the startup time
46 * is nil compared to the creation of the window itself in the memory
50 NoPlacement
, // not really a placement
51 Default
, // special, means to use the global default
52 Unknown
, // special, means the function should use its default
58 UnderMouse
, // special
59 OnMainWindow
, // special
63 void place(Client
* c
, QRect
& area
);
65 void placeAtRandom (Client
* c
, const QRect
& area
, Policy next
= Unknown
);
66 void placeCascaded (Client
* c
, QRect
& area
, Policy next
= Unknown
);
67 void placeSmart (Client
* c
, const QRect
& area
, Policy next
= Unknown
);
68 void placeMaximizing (Client
* c
, QRect
& area
, Policy next
= Unknown
);
69 void placeCentered (Client
* c
, const QRect
& area
, Policy next
= Unknown
);
70 void placeZeroCornered(Client
* c
, const QRect
& area
, Policy next
= Unknown
);
71 void placeDialog (Client
* c
, QRect
& area
, Policy next
= Unknown
);
72 void placeUtility (Client
* c
, QRect
& area
, Policy next
= Unknown
);
74 void reinitCascading( int desktop
);
76 static Policy
policyFromString( const QString
& policy
, bool no_special
);
77 static const char* policyToString( Policy policy
);
81 void place(Client
* c
, QRect
& area
, Policy policy
, Policy nextPlacement
= Unknown
);
82 void placeUnderMouse(Client
* c
, QRect
& area
, Policy next
= Unknown
);
83 void placeOnMainWindow(Client
* c
, QRect
& area
, Policy next
= Unknown
);
84 QRect
checkArea( const Client
*c
, const QRect
& area
);
88 //CT needed for cascading+
89 struct DesktopCascadingInfo
96 QList
<DesktopCascadingInfo
> cci
;
98 Workspace
* m_WorkspacePtr
;