]> Dogcows Code - chaz/openbox/blobdiff - util/epist/screen.hh
properly track the active workspace and the number of workspaces.
[chaz/openbox] / util / epist / screen.hh
index 54551aa3f32b27d89a204712f0ae316789fcb657..af5c00d1459f6fccd71ef26a49bdd74c338e1b87 100644 (file)
@@ -1,5 +1,5 @@
 // -*- mode: C++; indent-tabs-mode: nil; -*-
-// screen.hh for Epistory - a key handler for NETWM/EWMH window managers.
+// screen.hh for Epistophy - a key handler for NETWM/EWMH window managers.
 // Copyright (c) 2002 - 2002 Ben Jansens <ben at orodu.net>
 //
 // Permission is hereby granted, free of charge, to any person obtaining a
@@ -45,10 +45,14 @@ class screen {
   
   WindowList _clients;
   WindowList::iterator _active;
+  unsigned int _active_desktop;
+  unsigned int _num_desktops;
 
   bool _managed;
 
   XWindow *findWindow(const XEvent &e) const;
+  void updateNumDesktops();
+  void updateActiveDesktop();
   void updateClientList();
   void updateActiveWindow();
   bool doAddWindow(Window window) const;
@@ -60,8 +64,16 @@ public:
   
   inline Window rootWindow() const { return _root; }
   inline bool managed() const { return _managed; }
+  inline int number() const { return _number; }
   
   void processEvent(const XEvent &e);
+
+  void handleKeypress(const XEvent &e);
+
+  void cycleWindow(const bool forward, const bool alldesktops) const;
+  void cycleWorkspace(const bool forward, const bool loop = true) const;
+  void changeWorkspace(const int num) const;
+  void toggleShaded(const Window win) const;
 };
 
 #endif // __screen_hh
This page took 0.020937 seconds and 4 git commands to generate.