openbox/src/widget.hh

73 lines
1.4 KiB
C++
Raw Normal View History

// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
#ifndef __obwidget_hh
#define __obwidget_hh
2003-01-03 05:26:04 +00:00
#include "python.hh"
namespace ob {
class OBWidget {
public:
// update the enum in openbox.i to match this one
enum WidgetType {
2002-12-18 11:34:29 +00:00
Type_Frame,
Type_Titlebar,
Type_Handle,
2002-12-18 09:46:24 +00:00
Type_Plate,
Type_Label,
Type_MaximizeButton,
Type_CloseButton,
Type_IconifyButton,
Type_StickyButton,
Type_LeftGrip,
2002-12-18 11:34:29 +00:00
Type_RightGrip,
2002-12-20 14:44:20 +00:00
Type_Client,
Type_Root
};
private:
WidgetType _type;
public:
OBWidget(WidgetType type) : _type(type) {}
inline WidgetType type() const { return _type; }
2003-01-03 05:26:04 +00:00
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
}
}
};
}
#endif // __obwidget_hh