kwin Library API Documentation

placement.h

00001 /*****************************************************************
00002  KWin - the KDE window manager
00003  This file is part of the KDE project.
00004 
00005 Copyright (C) 1999, 2000 Matthias Ettrich <ettrich@kde.org>
00006 Copyright (C) 1997 to 2002 Cristian Tibirna <tibirna@kde.org>
00007 Copyright (C) 2003 Lubos Lunak <l.lunak@kde.org>
00008 
00009 You can Freely distribute this program under the GNU General Public
00010 License. See the file "COPYING" for the exact licensing terms.
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 
00041     private:
00042 
00043         void placeInternal(Client* c, const QRect& area );
00044         void placeUnderMouse(Client* c, QRect& area );
00045         void placeOnMainWindow(Client* c, QRect& area );
00046         QRect checkArea( const Client*c, const QRect& area );
00047 
00048         Placement();
00049 
00050     //CT needed for cascading+
00051         struct DesktopCascadingInfo 
00052             {
00053             QPoint pos;
00054             int col;
00055             int row;
00056             };
00057 
00058         QValueList<DesktopCascadingInfo> cci;
00059 
00060         Workspace* m_WorkspacePtr;
00061     };
00062 
00063 } // namespace
00064 
00065 #endif
KDE Logo
This file is part of the documentation for kwin Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Apr 29 21:20:53 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003