placement.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef KWIN_PLACEMENT_H
00014 #define KWIN_PLACEMENT_H
00015
00016 #include <qpoint.h>
00017 #include <qvaluelist.h>
00018
00019 namespace KWinInternal
00020 {
00021
00022 class Workspace;
00023 class Client;
00024
00025 class Placement
00026 {
00027 public:
00028
00029 Placement(Workspace* w);
00030
00031 void place(Client* c, QRect& area );
00032
00033 void placeAtRandom (Client* c, const QRect& area );
00034 void placeCascaded (Client* c, const QRect& area, bool re_init = false);
00035 void placeSmart (Client* c, const QRect& area );
00036 void placeCentered (Client* c, const QRect& area );
00037 void placeZeroCornered(Client* c, const QRect& area );
00038 void placeDialog (Client* c, QRect& area );
00039 void placeUtility (Client* c, QRect& area );
00040
00047 enum Policy
00048 {
00049 NoPlacement,
00050 Default,
00051 Random,
00052 Smart,
00053 Cascade,
00054 Centered,
00055 ZeroCornered,
00056 UnderMouse,
00057 OnMainWindow
00058 };
00059
00060 static Policy policyFromString( const QString& policy, bool no_special );
00061 static const char* policyToString( Policy policy );
00062
00063 private:
00064
00065 void place(Client* c, Policy policy, QRect& area);
00066 void placeUnderMouse(Client* c, QRect& area );
00067 void placeOnMainWindow(Client* c, QRect& area );
00068 QRect checkArea( const Client*c, const QRect& area );
00069
00070 Placement();
00071
00072
00073 struct DesktopCascadingInfo
00074 {
00075 QPoint pos;
00076 int col;
00077 int row;
00078 };
00079
00080 QValueList<DesktopCascadingInfo> cci;
00081
00082 Workspace* m_WorkspacePtr;
00083 };
00084
00085 }
00086
00087 #endif
This file is part of the documentation for kwin Library Version 3.4.2.