summaryrefslogtreecommitdiffstats
path: root/twin/sm.h
diff options
context:
space:
mode:
Diffstat (limited to 'twin/sm.h')
-rw-r--r--twin/sm.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/twin/sm.h b/twin/sm.h
new file mode 100644
index 000000000..065ce621d
--- /dev/null
+++ b/twin/sm.h
@@ -0,0 +1,89 @@
+/*****************************************************************
+ 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 TQSocketNotifier;
+
+namespace KWinInternal
+{
+
+struct SessionInfo
+ {
+ TQCString sessionId;
+ TQCString windowRole;
+ TQCString wmCommand;
+ TQCString wmClientMachine;
+ TQCString resourceName;
+ TQCString resourceClass;
+
+ TQRect geometry;
+ TQRect restore;
+ TQRect fsrestore;
+ int maximized;
+ int fullscreen;
+ int desktop;
+ bool minimized;
+ bool onAllDesktops;
+ bool shaded;
+ bool shadowed;
+ bool keepAbove;
+ bool keepBelow;
+ bool skipTaskbar;
+ bool skipPager;
+ bool userNoBorder;
+ NET::WindowType windowType;
+ TQString 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:
+ TQSocketNotifier* notifier;
+ SmcConn conn;
+ };
+
+
+class SessionManaged
+ : public KSessionManaged
+ {
+ public:
+ virtual bool saveState( QSessionManager& sm );
+ virtual bool commitData( QSessionManager& sm );
+ };
+
+} // namespace
+
+#endif