]> Dogcows Code - chaz/openbox/blobdiff - src/frame.hh
conflicts with python too :\
[chaz/openbox] / src / frame.hh
index 450c86702638fa26ea94ed74a0f3d9984e525811..37eee7eaecaf9573767e521f261d44a0160f6ead 100644 (file)
@@ -11,14 +11,13 @@ extern "C" {
 
 #include "client.hh"
 #include "backgroundwidget.hh"
+#include "labelwidget.hh"
+#include "buttonwidget.hh"
 #include "otk/strut.hh"
 #include "otk/rect.hh"
 #include "otk/screeninfo.hh"
 #include "otk/style.hh"
 #include "otk/widget.hh"
-#include "otk/button.hh"
-#include "otk/focuswidget.hh"
-#include "otk/focuslabel.hh"
 
 #include <string>
 
@@ -30,11 +29,13 @@ namespace ob {
   parent with the SubstructureRedirectMask so that structure events for the
   client are sent to the window manager.
 */
-class OBFrame : public otk::OtkWidget {
+class OBFrame : public otk::OtkWidget, public OBWidget {
 public:
 
   //! The event mask to grab on frame windows
-  static const long event_mask = EnterWindowMask | LeaveWindowMask;
+  static const long event_mask = EnterWindowMask | LeaveWindowMask |
+                                 ButtonPressMask | ButtonReleaseMask |
+                                 ButtonMotionMask;
 
 private:
   OBClient *_client;
@@ -52,14 +53,14 @@ private:
   // decoration windows
   OBBackgroundWidget  _plate;   // sits entirely under the client window
   OBBackgroundWidget  _titlebar;
-  otk::OtkButton      _button_close;
-  otk::OtkButton      _button_iconify;
-  otk::OtkButton      _button_max;
-  otk::OtkButton      _button_stick;
-  otk::OtkFocusLabel  _label;
+  OBButtonWidget      _button_close;
+  OBButtonWidget      _button_iconify;
+  OBButtonWidget      _button_max;
+  OBButtonWidget      _button_stick;
+  OBLabelWidget       _label;
   OBBackgroundWidget  _handle;
-  otk::OtkButton      _grip_left;
-  otk::OtkButton      _grip_right;
+  OBButtonWidget      _grip_left;
+  OBButtonWidget      _grip_right;
 
   //! The decorations to display on the window.
   /*!
@@ -111,6 +112,27 @@ public:
   */
   void frameGravity(int &x, int &y);
 
+  //! Gets the window id of the frame's "plate" subelement
+  inline Window plate() const { return _plate.window(); }
+  //! Gets the window id of the frame's "titlebar" subelement
+  inline Window titlebar() const { return _titlebar.window(); }
+  //! Gets the window id of the frame's "label" subelement
+  inline Window label() const { return _label.window(); }
+  //! Gets the window id of the frame's "close button" subelement
+  inline Window button_close() const { return _button_close.window(); }
+  //! Gets the window id of the frame's "iconify button" subelement
+  inline Window button_iconify() const { return _button_iconify.window(); }
+  //! Gets the window id of the frame's "maximize button" subelement
+  inline Window button_max() const { return _button_max.window(); }
+  //! Gets the window id of the frame's "sticky button" subelement
+  inline Window button_stick() const { return _button_stick.window(); }
+  //! Gets the window id of the frame's "handle" subelement
+  inline Window handle() const { return _handle.window(); }
+  //! Gets the window id of the frame's "left grip" subelement
+  inline Window grip_left() const { return _grip_left.window(); }
+  //! Gets the window id of the frame's "right grip" subelement
+  inline Window grip_right() const { return _grip_right.window(); }
+
 };
 
 }
This page took 0.026479 seconds and 4 git commands to generate.