notifications.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_NOTIFICATIONS_H
00013 #define KWIN_NOTIFICATIONS_H
00014 
00015 #include <stdlib.h>
00016 #include <qstring.h>
00017 #include <qvaluelist.h>
00018 
00019 namespace KWinInternal
00020 {
00021 
00022 class Client;
00023 
00024 class Notify
00025     {
00026     public:
00027 
00028         enum Event 
00029             {
00030             Activate,
00031             Close,
00032             Minimize,
00033             UnMinimize,
00034             Maximize,
00035             UnMaximize,
00036             OnAllDesktops,
00037             NotOnAllDesktops,
00038             New,
00039             Delete,
00040             TransNew,
00041             TransDelete,
00042             ShadeUp,
00043             ShadeDown,
00044             MoveStart,
00045             MoveEnd,
00046             ResizeStart,
00047             ResizeEnd,
00048             DemandAttentionCurrent,
00049             DemandAttentionOther,
00050             DesktopChange = 100
00051             };
00052 
00053         static bool raise( Event, const QString& message = QString::null, Client* c = NULL );
00054         static bool makeDemandAttention( Event );
00055         static void sendPendingEvents();
00056     private:
00057         static QString eventToName( Event );
00058         struct EventData
00059             {
00060             QString event;
00061             QString message;
00062             long window;
00063             };
00064         static QValueList< EventData > pending_events;
00065     };
00066 
00067 } // namespace
00068 
00069 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys