#ifndef _DECWmHints_h_
#define _DECWmHints_h_

#include <X11/X.h>
#include <X++/Xlib.h>

class WmDecorationGeometryRec;
typedef WmDecorationGeometryRec *WmDecorationGeometry;
class WmDecorationGeometryRec {
	Font title_font;
	Font icon_font;
	int border_width;
	int title_height;
	int non_title_width;
	int icon_name_width;
	int iconify_width;
	int iconify_height;
};


#define DECWmIconifyPixmapMask		(1L<<0)
#define DECWmIconBoxXMask 		(1L<<1)
#define DECWmIconBoxYMask		(1L<<2)
#define DECWmTiledMask			(1L<<3)
#define DECWmStickyMask			(1L<<4)
#define DECWmNoIconifyButtonMask	(1L<<5)
#define DECWmNoLowerButtonMask		(1L<<6)
#define DECWmNoResizeButtonMask		(1L<<7)

class DECWmHintsRec;
typedef DECWmHintsRec *DECWmHints;
class DECWmHintsRec {
	unsigned long value_mask;
	Pixmap iconify_pixmap;
	int icon_box_x;
	int icon_box_y;
	Bool tiled;
	Bool sticky;
	Bool no_iconify_button;
	Bool no_lower_button;
	Bool no_resize_button;
};

#define WmNormalState 0
#define WmIconicState 1

class WmIconStateRec;
typedef WmIconStateRec *WmIconState;
class WmIconStateRec {
	int state; /* normal or iconic (or zoomed?) */
};

extern void WmSetDecorationGeometry(Display *, Atom, Window,  WmDecorationGeometry);
extern void WmSetDECWmHints(Display *, Atom, Window, DECWmHints);
extern void WmSetIconBoxName(Display *, Atom, Window, char *);
extern void WmSetIconState(Display *, Atom, Window, WmIconState);

extern Status WmGetDecorationGeoemtery(Display *, Atom, Window, WmDecorationGeometry);
extern Status WmGetDECWmHints(Display *, Atom, Window, DECWmHints);
extern Status WmGetIconBoxName(Display *, Atom, Window, char **);
extern Status WmGetIconState(Display *, Atom, Window, WmIconState);

#endif _DECWmHints_h_

