kwin Library API Documentation

group.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) 2003 Lubos Lunak <l.lunak@kde.org>
00007 
00008 You can Freely distribute this program under the GNU General Public
00009 License. See the file "COPYING" for the exact licensing terms.
00010 ******************************************************************/
00011 
00012 #ifndef KWIN_GROUP_H
00013 #define KWIN_GROUP_H
00014 
00015 #include "utils.h"
00016 #include <X11/X.h>
00017 #include <netwm.h>
00018 
00019 namespace KWinInternal
00020 {
00021 
00022 class Client;
00023 class Workspace;
00024 
00025 class Group
00026     {
00027     public:
00028         Group( Window leader, Workspace* workspace );
00029         ~Group();
00030         Window leader() const;
00031         const Client* leaderClient() const;
00032         Client* leaderClient();
00033         const ClientList& members() const;
00034         QPixmap icon() const;
00035         QPixmap miniIcon() const;
00036         void addMember( Client* member );
00037         void removeMember( Client* member );
00038         void gotLeader( Client* leader );
00039         void lostLeader();
00040         Workspace* workspace();
00041         bool groupEvent( XEvent* e );
00042         void updateUserTime( Time time = CurrentTime );
00043         Time userTime() const;
00044     private:
00045         void getIcons();
00046         void startupIdChanged();
00047         ClientList _members;
00048         Client* leader_client;
00049         Window leader_wid;
00050         Workspace* _workspace;
00051         NETWinInfo* leader_info;
00052         Time user_time;
00053     };
00054 
00055 inline Window Group::leader() const
00056     {
00057     return leader_wid;
00058     }
00059 
00060 inline const Client* Group::leaderClient() const
00061     {
00062     return leader_client;
00063     }
00064 
00065 inline Client* Group::leaderClient()
00066     {
00067     return leader_client;
00068     }
00069 
00070 inline const ClientList& Group::members() const
00071     {
00072     return _members;
00073     }
00074 
00075 inline Workspace* Group::workspace()
00076     {
00077     return _workspace;
00078     }
00079 
00080 inline Time Group::userTime() const
00081     {
00082     return user_time;
00083     }
00084 
00085 } // namespace
00086 
00087 #endif
KDE Logo
This file is part of the documentation for kwin Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Apr 6 02:41:05 2005 by doxygen 1.4.0 written by Dimitri van Heesch, © 1997-2003