]> Dogcows Code - chaz/openbox/blobdiff - src/window.hh
new timer infrastructure. takes a function pointer for the timeout, with a void*...
[chaz/openbox] / src / window.hh
index e8249b0840b5a2ee0aa63c95a88dd28813fb52ce..29818b4387413daf7f5001bc25618307193286de 100644 (file)
@@ -1,26 +1,4 @@
 // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
-// Window.hh for Blackbox - an X11 Window manager
-// Copyright (c) 2001 - 2002 Sean 'Shaleh' Perry <shaleh@debian.org>
-// Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-// DEALINGS IN THE SOFTWARE.
-
 #ifndef   __Window_hh
 #define   __Window_hh
 
@@ -34,10 +12,9 @@ extern "C" {
 
 #include <string>
 
-#include "basedisplay.hh"
-#include "timer.hh"
+#include "otk/timer.hh"
+#include "blackbox.hh"
 #include "util.hh"
-#include "windowmenu.hh"
 
 #define MwmHintsFunctions     (1l << 0)
 #define MwmHintsDecorations   (1l << 1)
@@ -57,6 +34,8 @@ extern "C" {
 #define MwmDecorIconify       (1l << 5)
 #define MwmDecorMaximize      (1l << 6)
 
+namespace ob {
+
 // this structure only contains 3 elements... the Motif 2.0 structure contains
 // 5... we only need the first 3... so that is all we will define
 typedef struct MwmHints {
@@ -91,7 +70,7 @@ public:
 };
 
 
-class BlackboxWindow : public TimeoutHandler {
+class BlackboxWindow {
 public:
   enum Function { Func_Resize   = (1l << 0),
                   Func_Move     = (1l << 1),
@@ -126,11 +105,10 @@ private:
   Blackbox *blackbox;
   BScreen *screen;
   XAtom *xatom;
-  BTimer *timer;
+  otk::OBTimer *timer;
   BlackboxAttributes blackbox_attrib;
 
   Time lastButtonPressTime;  // used for double clicks, when were we clicked
-  Windowmenu *windowmenu;
 
   unsigned int window_number;
   unsigned long current_state;
@@ -168,7 +146,7 @@ private:
 
     std::string title, icon_title;
 
-    Rect rect;
+    otk::Rect rect;
     Strut strut;
 
     int old_bw;                       // client's borderwidth
@@ -237,9 +215,9 @@ private:
      * size and location of the box drawn while the window dimensions or
      * location is being changed, ie. resized or moved
      */
-    Rect changing;
+    otk::Rect changing;
 
-    Rect rect;                  // frame geometry
+    otk::Rect rect;                  // frame geometry
     Strut margin;               // margins between the frame and client
 
     int grab_x, grab_y;         // where was the window when it was grabbed?
@@ -290,17 +268,17 @@ private:
   void redrawWindowFrame(void) const;
   void redrawLabel(void) const;
   void redrawAllButtons(void) const;
-  void BlackboxWindow::redrawButton(bool pressed, Window win,
-                                    Pixmap fppix, unsigned long fppixel,
-                                    Pixmap uppix, unsigned long uppixel,
-                                    Pixmap fpix, unsigned long fpixel,
-                                    Pixmap upix, unsigned long upixel) const;
+  void redrawButton(bool pressed, Window win,
+                    Pixmap fppix, unsigned long fppixel,
+                    Pixmap uppix, unsigned long uppixel,
+                    Pixmap fpix, unsigned long fpixel,
+                    Pixmap upix, unsigned long upixel) const;
   void redrawCloseButton(bool pressed) const;
   void redrawIconifyButton(bool pressed) const;
   void redrawMaximizeButton(bool pressed) const;
   void redrawStickyButton(bool pressed) const;
-  void applyGravity(Rect &r);
-  void restoreGravity(Rect &r);
+  void applyGravity(otk::Rect &r);
+  void restoreGravity(otk::Rect &r);
   void setAllowedActions(void);
   void setState(unsigned long new_state);
   void upsize(void);
@@ -353,8 +331,6 @@ public:
   inline Window getClientWindow(void) const { return client.window; }
   inline Window getGroupWindow(void) const { return client.window_group; }
 
-  inline Windowmenu * getWindowmenu(void) const { return windowmenu; }
-
   inline const char *getTitle(void) const
   { return client.title.c_str(); }
   inline const char *getIconTitle(void) const
@@ -364,8 +340,8 @@ public:
   { return blackbox_attrib.workspace; }
   inline unsigned int getWindowNumber(void) const { return window_number; }
 
-  inline const Rect &frameRect(void) const { return frame.rect; }
-  inline const Rect &clientRect(void) const { return client.rect; }
+  inline const otk::Rect &frameRect(void) const { return frame.rect; }
+  inline const otk::Rect &clientRect(void) const { return client.rect; }
 
   inline unsigned int getTitleHeight(void) const
   { return frame.title_h; }
@@ -429,8 +405,9 @@ public:
   void shapeEvent(XShapeEvent * /*unused*/);
 #endif // SHAPE
 
-  virtual void timeout(void);
+  static void timeout(BlackboxWindow *t);
 };
 
+}
 
 #endif // __Window_hh
This page took 0.027583 seconds and 4 git commands to generate.