summaryrefslogtreecommitdiff
path: root/src/locker.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/locker.h')
-rw-r--r--src/locker.h28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/locker.h b/src/locker.h
index 5a1374c..8581c33 100644
--- a/src/locker.h
+++ b/src/locker.h
@@ -98,16 +98,41 @@ private:
CompRegion mDamage;
};
+class Lockable
+{
+public:
+
+ Lockable () {}
+ virtual ~Lockable () {}
+
+ virtual bool lock () = 0;
+ virtual bool unlock () = 0;
+ virtual bool wake () = 0;
+
+ static void
+ SetDefault (Lockable *);
+
+ static Lockable *
+ Default ();
+
+protected:
+
+ LockerLockWindow *mLockerWindow;
+ LockerLockBackground *mLockerBackground;
+};
+
class LockerScreen :
public PluginClassHandler <LockerScreen, CompScreen>,
public ScreenInterface,
public CompositeScreenInterface,
public GLScreenInterface,
+ public Lockable,
public LockerOptions
{
public:
LockerScreen (CompScreen *);
+ ~LockerScreen ();
CompositeScreen *cScreen;
GLScreen *gScreen;
@@ -146,9 +171,6 @@ private:
CompTimer mWaitTimer;
CompScreen::GrabHandle mGrabIndex;
-
- SimpleLockerWindow *mSLW;
- SimpleLockerBackground *mSLB;
};
class LockerWindow :