#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>
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;
// 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.
/*!
*/
void frameGravity(int &x, int &y);
+ //! Gets the window id of the frame's "plate" subelement
+ inline Window plate() const { return _plate.getWindow(); }
+ //! Gets the window id of the frame's "titlebar" subelement
+ inline Window titlebar() const { return _titlebar.getWindow(); }
+ //! Gets the window id of the frame's "label" subelement
+ inline Window label() const { return _label.getWindow(); }
+ //! Gets the window id of the frame's "close button" subelement
+ inline Window button_close() const { return _button_close.getWindow(); }
+ //! Gets the window id of the frame's "iconify button" subelement
+ inline Window button_iconify() const { return _button_iconify.getWindow(); }
+ //! Gets the window id of the frame's "maximize button" subelement
+ inline Window button_max() const { return _button_max.getWindow(); }
+ //! Gets the window id of the frame's "sticky button" subelement
+ inline Window button_stick() const { return _button_stick.getWindow(); }
+ //! Gets the window id of the frame's "handle" subelement
+ inline Window handle() const { return _handle.getWindow(); }
+ //! Gets the window id of the frame's "left grip" subelement
+ inline Window grip_left() const { return _grip_left.getWindow(); }
+ //! Gets the window id of the frame's "right grip" subelement
+ inline Window grip_right() const { return _grip_right.getWindow(); }
+
};
}