diff options
Diffstat (limited to 'kdesktop/lock/lockprocess.h')
-rw-r--r-- | kdesktop/lock/lockprocess.h | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/kdesktop/lock/lockprocess.h b/kdesktop/lock/lockprocess.h new file mode 100644 index 000000000..d7043e64d --- /dev/null +++ b/kdesktop/lock/lockprocess.h @@ -0,0 +1,131 @@ +//=========================================================================== +// +// This file is part of the KDE project +// +// Copyright (c) 1999 Martin R. Jones <[email protected]> +// Copyright (c) 2003 Oswald Buddenhagen <[email protected]> +// + +#ifndef __LOCKENG_H__ +#define __LOCKENG_H__ + +#include <kgreeterplugin.h> + +#include <kprocess.h> +#include <kpixmap.h> + +#include <qwidget.h> +#include <qtimer.h> +#include <qvaluestack.h> +#include <qmessagebox.h> +#include <qpixmap.h> + +#include <X11/Xlib.h> + +class KLibrary; + +struct GreeterPluginHandle { + KLibrary *library; + kgreeterplugin_info *info; +}; + +//=========================================================================== +// +// Screen saver handling process. Handles screensaver window, +// starting screensaver hacks, and password entry. +// +class LockProcess + : public QWidget +{ + Q_OBJECT +public: + LockProcess(bool child_saver = false, bool useBlankOnly = false); + ~LockProcess(); + + bool lock(); + + bool defaultSave(); + + bool dontLock(); + + void setChildren(QValueList<int> children) { child_sockets = children; } + void setParent(int fd) { mParent = fd; } + + void msgBox( QMessageBox::Icon type, const QString &txt ); + int execDialog( QDialog* dlg ); + +public slots: + void quitSaver(); + void preparePopup(); + void cleanupPopup(); + +protected: + virtual bool x11Event(XEvent *); + virtual void timerEvent(QTimerEvent *); + +private slots: + void hackExited(KProcess *); + void signalPipeSignal(); + bool startLock(); + void suspend(); + void checkDPMSActive(); + void slotDeadTimePassed(); + +private: + void configure(); + void readSaver(); + void createSaverWindow(); + void hideSaverWindow(); + void saveVRoot(); + void setVRoot(Window win, Window rw); + void removeVRoot(Window win); + bool grabKeyboard(); + bool grabMouse(); + bool grabInput(); + void ungrabInput(); + void cantLock(const QString &reason); + bool startSaver(); + void stopSaver(); + bool startHack(); + void stopHack(); + void setupSignals(); + bool checkPass(); + void stayOnTop(); + void lockXF86(); + void unlockXF86(); + void resume( bool force ); + static QVariant getConf(void *ctx, const char *key, const QVariant &dflt); + + bool mLocked; + int mLockGrace; + int mPriority; + bool mBusy; + KProcess mHackProc; + int mRootWidth; + int mRootHeight; + QString mSaverExec; + QString mSaver; + bool mOpenGLVisual; + bool child_saver; + QValueList<int> child_sockets; + int mParent; + bool mUseBlankOnly; + bool mSuspended; + QTimer mSuspendTimer; + bool mVisibility; + bool mDPMSDepend; + QTimer mCheckDPMS; + QValueStack< QWidget* > mDialogs; + bool mRestoreXF86Lock; + bool mForbidden; + QStringList mPlugins, mPluginOptions; + QString mMethod; + GreeterPluginHandle greetPlugin; + QPixmap mSavedScreen; + int mAutoLogoutTimerId; + int mAutoLogoutTimeout; + bool mAutoLogout; +}; + +#endif + |