]> Dogcows Code - chaz/openbox/blobdiff - util/epist/window.hh
uber patch.
[chaz/openbox] / util / epist / window.hh
index 91cd834ddc47718939fb89ee1749fd8dad6454ee..618731fd003a065f5d38f9794c6010e9bfea2477 100644 (file)
@@ -1,5 +1,5 @@
 // -*- mode: C++; indent-tabs-mode: nil; -*-
-// window.hh for Epistophy - a key handler for NETWM/EWMH window managers.
+// window.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
@@ -30,24 +30,37 @@ extern "C" {
 #include <list>
 #include <string>
 
+#include "../../src/Util.hh"
+
 class epist;
 class screen;
-class XWindow;
 class XAtom;
 
-typedef std::list<XWindow *> WindowList;
-
 class XWindow {
+public:
+  enum Max {
+    Max_None,
+    Max_Horz,
+    Max_Vert,
+    Max_Full
+  };
+
 private:
-  epist *_epist;
+  epist  *_epist;
   screen *_screen;
-  XAtom *_xatom;
+  XAtom  *_xatom;
+
   Window _window;
-  
+
   unsigned int _desktop;
   std::string _title;
   std::string _app_name;
   std::string _app_class;
+  Rect _rect;
+  int _inc_x, _inc_y; // resize increments
+  int _base_x, _base_y; // base size
+  int _gravity;
+  bool _can_focus;
 
   // states
   bool _shaded;
@@ -57,6 +70,9 @@ private:
 
   bool _unmapped;
 
+  void updateDimentions();
+  void updateNormalHints();
+  void updateWMHints();
   void updateState();
   void updateDesktop();
   void updateTitle();
@@ -66,17 +82,24 @@ public:
   XWindow(epist *epist, screen *screen, Window window);
   virtual ~XWindow();
 
+  inline screen *getScreen() const { return _screen; }
   inline Window window() const { return _window; }
   
   inline unsigned int desktop() const { return _desktop; }
   inline const std::string &title() const { return _title; }
   inline const std::string &appName() const { return _app_name; }
   inline const std::string &appClass() const { return _app_class; }
+  inline bool canFocus() const { return _can_focus; }
   
   inline bool shaded() const { return _shaded; }
   inline bool iconic() const { return _iconic; }
   inline bool maxVert() const { return _max_vert; }
   inline bool maxHorz() const { return _max_horz; }
+  inline const Rect &area() const { return _rect; }
+  inline unsigned int x() const { return _rect.x(); }
+  inline unsigned int y() const { return _rect.y(); }
+  inline unsigned int width() const { return _rect.width(); }
+  inline unsigned int height() const { return _rect.height(); }
 
   void processEvent(const XEvent &e);
 
@@ -87,9 +110,16 @@ public:
   void iconify() const;
   void focus() const;
   void sendTo(unsigned int dest) const;
+  void move(int x, int y) const;
+  void resizeRel(int dwidth, int dheight) const;
+  void resizeAbs(unsigned int width, unsigned int height) const;
+  void toggleMaximize(Max max) const; // i hate toggle functions
+  void maximize(Max max) const;
 
   bool operator == (const XWindow &w) const { return w._window == _window; }
   bool operator == (const Window &w) const { return w == _window; }
 };
 
+typedef std::list<XWindow *> WindowList;
+
 #endif // __window_hh
This page took 0.023926 seconds and 4 git commands to generate.