#include "otk/rect.hh"
#include "otk/eventhandler.hh"
#include "widget.hh"
-#include "python.hh"
namespace ob {
class OBFrame;
-extern PyTypeObject OBClient_Type;
+//! The MWM Hints as retrieved from the window property
+/*!
+ This structure only contains 3 elements, even though the Motif 2.0
+ structure contains 5. We only use the first 3, so that is all gets defined.
+*/
+struct MwmHints {
+ //! The number of elements in the OBClient::MwmHints struct
+ static const unsigned int elements = 3;
+ unsigned long flags; //!< A bitmask of OBClient::MwmFlags values
+ unsigned long functions; //!< A bitmask of OBClient::MwmFunctions values
+ unsigned long decorations;//!< A bitmask of OBClient::MwmDecorations values
+};
+
//! Maintains the state of a client window.
/*!
change (such as causing a redraw of the titlebar after the title is changed).
*/
class OBClient : public otk::OtkEventHandler, public OBWidget {
- PyObject_HEAD
public:
//! The frame window which decorates around the client window
//! Holds a bitmask of OBClient::Decoration values
typedef unsigned char DecorationFlags;
- //! The MWM Hints as retrieved from the window property
- /*!
- This structure only contains 3 elements, even though the Motif 2.0
- structure contains 5. We only use the first 3, so that is all gets defined.
- */
- typedef struct MwmHints {
- //! The number of elements in the OBClient::MwmHints struct
- static const unsigned int elements = 3;
- unsigned long flags; //!< A bitmask of OBClient::MwmFlags values
- unsigned long functions; //!< A bitmask of OBClient::MwmFunctions values
- unsigned long decorations;//!< A bitmask of OBClient::MwmDecorations values
- };
-
//! Possible actions that can be made with the _NET_WM_STATE client message
enum StateAction { State_Remove = 0, //!< _NET_WM_STATE_REMOVE
State_Add, //!< _NET_WM_STATE_ADD
// XXX: updateTransientFor();
public:
+#ifndef SWIG
//! Constructs a new OBClient object around a specified window id
/*!
@param window The window id that the OBClient class should handle
OBClient(int screen, Window window);
//! Destroys the OBClient object
virtual ~OBClient();
+#endif
//! Returns the screen on which the clien resides
inline int screen() const { return _screen; }
@param y The Y component of the new size for the client
*/
void resize(Corner anchor, int x, int y);
+
+ //! Request the client to close its window.
+ void close();
virtual void propertyHandler(const XPropertyEvent &e);
virtual void clientMessageHandler(const XClientMessageEvent &e);