diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 4aed2c8219774f5d797760606b8489a92ddc5163 (patch) | |
tree | 3f8c130f7d269626bf6a9447407ef6c35954426a /kwin/sm.h | |
download | tdebase-4aed2c8219774f5d797760606b8489a92ddc5163.tar.gz tdebase-4aed2c8219774f5d797760606b8489a92ddc5163.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kwin/sm.h')
-rw-r--r-- | kwin/sm.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/kwin/sm.h b/kwin/sm.h new file mode 100644 index 000000000..0a23b7bad --- /dev/null +++ b/kwin/sm.h @@ -0,0 +1,88 @@ +/***************************************************************** + KWin - the KDE window manager + This file is part of the KDE project. + +Copyright (C) 1999, 2000 Matthias Ettrich <ettrich@kde.org> +Copyright (C) 2003 Lubos Lunak <l.lunak@kde.org> + +You can Freely distribute this program under the GNU General Public +License. See the file "COPYING" for the exact licensing terms. +******************************************************************/ + +#ifndef KWIN_SM_H +#define KWIN_SM_H + +#include <X11/SM/SMlib.h> +#include <kapplication.h> +#include <netwm_def.h> + +class QSocketNotifier; + +namespace KWinInternal +{ + +struct SessionInfo + { + QCString sessionId; + QCString windowRole; + QCString wmCommand; + QCString wmClientMachine; + QCString resourceName; + QCString resourceClass; + + QRect geometry; + QRect restore; + QRect fsrestore; + int maximized; + int fullscreen; + int desktop; + bool minimized; + bool onAllDesktops; + bool shaded; + bool keepAbove; + bool keepBelow; + bool skipTaskbar; + bool skipPager; + bool userNoBorder; + NET::WindowType windowType; + QString shortcut; + bool active; // means 'was active in the saved session' + }; + + +enum SMSavePhase + { + SMSavePhase0, // saving global state in "phase 0" + SMSavePhase2, // saving window state in phase 2 + SMSavePhase2Full // complete saving in phase2, there was no phase 0 + }; + +class SessionSaveDoneHelper + : public QObject + { + Q_OBJECT + public: + SessionSaveDoneHelper(); + virtual ~SessionSaveDoneHelper(); + SmcConn connection() const { return conn; } + void saveDone(); + void close(); + private slots: + void processData(); + private: + QSocketNotifier* notifier; + SmcConn conn; + }; + + +class SessionManaged + : public KSessionManaged + { + public: + virtual bool saveState( QSessionManager& sm ); + virtual bool commitData( QSessionManager& sm ); + }; + +} // namespace + +#endif |