X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fwidget.hh;h=85b9dcc597517544a8294224cf3cf0b6c6a78341;hb=15d3efa69c40c93ae609a791e4b57c3d793e646f;hp=ed0f0a9d740f2a35931741f9094fda8ae65e8685;hpb=25d1e3538be5719b238f7e62a949c409fef2af66;p=chaz%2Fopenbox diff --git a/src/widget.hh b/src/widget.hh index ed0f0a9d..85b9dcc5 100644 --- a/src/widget.hh +++ b/src/widget.hh @@ -2,11 +2,15 @@ #ifndef __obwidget_hh #define __obwidget_hh +#include "python.hh" + namespace ob { class OBWidget { public: + // update the enum in openbox.i to match this one enum WidgetType { + Type_Frame, Type_Titlebar, Type_Handle, Type_Plate, @@ -16,7 +20,9 @@ public: Type_IconifyButton, Type_StickyButton, Type_LeftGrip, - Type_RightGrip + Type_RightGrip, + Type_Client, + Type_Root }; private: @@ -26,6 +32,39 @@ public: OBWidget(WidgetType type) : _type(type) {} inline WidgetType type() const { return _type; } + + inline MouseContext mcontext() const { + switch (_type) { + case Type_Frame: + return MC_Frame; + case Type_Titlebar: + return MC_Titlebar; + case Type_Handle: + return MC_Handle; + case Type_Plate: + return MC_Window; + case Type_Label: + return MC_Titlebar; + case Type_MaximizeButton: + return MC_MaximizeButton; + case Type_CloseButton: + return MC_CloseButton; + case Type_IconifyButton: + return MC_IconifyButton; + case Type_StickyButton: + return MC_StickyButton; + case Type_LeftGrip: + return MC_Grip; + case Type_RightGrip: + return MC_Grip; + case Type_Client: + return MC_Window; + case Type_Root: + return MC_Root; + default: + assert(false); // unhandled type + } + } }; }