]> Dogcows Code - chaz/openbox/blobdiff - util/epist/epist.hh
adding buttons for styles
[chaz/openbox] / util / epist / epist.hh
index 2f5d7399d534fdd87d8450b9603d34cd285c0686..64970e57904872f346a47d247d287ed3d9b9ef89 100644 (file)
@@ -1,5 +1,5 @@
-// -*- mode: C++; indent-tabs-mode: nil; -*-
-// epist.hh for Epistory - a key handler for NETWM/EWMH window managers.
+// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
+// epist.hh for Epistrophy - 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
@@ -27,11 +27,67 @@ extern "C" {
 #include <X11/Xlib.h>
 }
 
+#include <string>
+#include <map>
+
+#include "actions.hh"
+#include "window.hh"
+#include "keytree.hh"
+#include "config.hh"
+
+#include "../../src/basedisplay.hh"
+
 class XAtom;
+class screen;
+
+class epist : public BaseDisplay {
+private:
+  std::string _rc_file;
+  XAtom *_xatom;
+  char **_argv;
+  keytree *_ktree;
+  Config *_config;
+
+  typedef std::vector<screen *> ScreenList;
+  ScreenList _screens;
+
+  typedef std::map<Window, XWindow*> WindowLookup;
+  typedef WindowLookup::value_type WindowLookupPair;
+  WindowLookup    _windows;
+  
+  WindowList _clients;
+  WindowList::iterator _active;
+
+  ActionList _actions;
+  
+  virtual void process_event(XEvent *e);
+  virtual bool handleSignal(int sig);
+
+  void activateGrabs();
+
+public:
+  epist(char **argv, char *display_name, char *rc_file);
+  virtual ~epist();
+
+  inline XAtom *xatom() { return _xatom; }
+
+  void addWindow(XWindow *window);
+  void removeWindow(XWindow *window);
+  XWindow *findWindow(Window window) const;
+
+  void cycleScreen(int current, bool forward) const;
+
+  void getLockModifiers(int &numlockMask, int &scrolllockMask) const {
+    numlockMask = NumLockMask;
+    scrolllockMask = ScrollLockMask;
+  }
+  
+  const ActionList &actions(void) { return _actions; }
+  keytree &getKeyTree(void) { return *_ktree; }
+  inline const Config *getConfig(void) { return _config; }
 
-extern bool _shutdown;
-extern Display *_display;
-extern Window _root;
-extern XAtom *_xatom;
+  WindowList& clientsList() { return _clients; }
+  WindowList::iterator& activeWindow() { return _active; }
+};
 
 #endif // __epist_hh
This page took 0.021656 seconds and 4 git commands to generate.