summaryrefslogtreecommitdiffstats
path: root/kwin/sm.h
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit4aed2c8219774f5d797760606b8489a92ddc5163 (patch)
tree3f8c130f7d269626bf6a9447407ef6c35954426a /kwin/sm.h
downloadtdebase-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.h88
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