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 /kdesktop/lockeng.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 'kdesktop/lockeng.h')
-rw-r--r-- | kdesktop/lockeng.h | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/kdesktop/lockeng.h b/kdesktop/lockeng.h new file mode 100644 index 000000000..0eb67f9d6 --- /dev/null +++ b/kdesktop/lockeng.h @@ -0,0 +1,113 @@ +//=========================================================================== +// +// This file is part of the KDE project +// +// Copyright (c) 1999 Martin R. Jones <mjones@kde.org> +// + +#ifndef __LOCKENG_H__ +#define __LOCKENG_H__ + +#include <qwidget.h> +#include <kprocess.h> +#include <qvaluevector.h> +#include "KScreensaverIface.h" +#include "xautolock.h" +#include "xautolock_c.h" + +class DCOPClientTransaction; + +//=========================================================================== +/** + * Screen saver engine. Handles screensaver window, starting screensaver + * hacks, and password entry. + */ +class SaverEngine + : public QWidget, + virtual public KScreensaverIface +{ + Q_OBJECT +public: + SaverEngine(); + ~SaverEngine(); + + /** + * Lock the screen + */ + virtual void lock(); + + /** + * Save the screen + */ + virtual void save(); + + /** + * Quit the screensaver if running + */ + virtual void quit(); + + /** + * return true if the screensaver is enabled + */ + virtual bool isEnabled(); + + /** + * enable/disable the screensaver + */ + virtual bool enable( bool e ); + + /** + * return true if the screen is currently blanked + */ + virtual bool isBlanked(); + + /** + * Read and apply configuration. + */ + virtual void configure(); + + /** + * Enable or disable "blank only" mode. This is useful for + * laptops where one might not want a cpu thirsty screensaver + * draining the battery. + */ + virtual void setBlankOnly( bool blankOnly ); + + /** + * Called by kdesktop_lock when locking is in effect. + */ + virtual void saverLockReady(); + +protected slots: + void idleTimeout(); + void lockProcessExited(); + +protected: + enum LockType { DontLock, DefaultLock, ForceLock }; + bool startLockProcess( LockType lock_type ); + void stopLockProcess(); + bool handleKeyPress(XKeyEvent *xke); + void processLockTransactions(); + xautolock_corner_t applyManualSettings(int); + +protected: + enum State { Waiting, Preparing, Saving }; + bool mEnabled; + + State mState; + XAutoLock *mXAutoLock; + KProcess mLockProcess; + int mTimeout; + + // the original X screensaver parameters + int mXTimeout; + int mXInterval; + int mXBlanking; + int mXExposures; + + bool mBlankOnly; // only use the blanker, not the defined saver + QValueVector< DCOPClientTransaction* > mLockTransactions; +}; + +#endif + |