#include <xt++/Shell.h> // must be outside the ifdef!

#ifndef _XtVendor_h
#define _XtVendor_h

#ifdef DECHINTS
#include <xt++/DECWmHints.h>
#include <sys/types.h>
#include <sys/time.h>

/***********************************************************************
 *
 * VendorShell Widget
 *
 ***********************************************************************/

#define XtNiconifyPixmap	"iconifyPixmap"
#define XtCIconifyPixmap	"IconifyPixmap"
#define XtNiconBoxX		"iconBoxX"
#define XtCIconBoxX		"IconBoxX"
#define XtNiconBoxY		"iconBoxY"
#define XtCIconBoxY		"IconBoxY"
#define XtNtiled		"tiled"
#define XtCTiled		"Tiled"
#define XtNsticky		"sticky"
#define XtCSticky		"Sticky"
#define XtNnoIconify		"noIconify"
#define XtCNoIconify		"NoIconify"
#define XtNnoLower		"noLower"
#define XtCNoLower		"NoLower"
#define XtNnoResize		"noResize"
#define XtCNoResize		"NoResize"
#define XtNiconBox		"iconBox"
#define XtCIconBox		"IconBox"

/* Copyright notice resources -- now obsolete */
#define XtNcopyright		"copyright"
#define XtCCopyright		"Copyright"
#define XtNcopyrightNotice	"copyrightNotice"
#define XtCCopyrightNotice	"CopyrightNotice"
#define XtNcopyrightMessage	"copyrightMessage"
#define XtCCopyrightMessage	"CopyrightMessage"
#define XtNcopyrightFont	"copyrightFont"
#define XtNcopyrightForeground	"copyrightForeground"
#define XtNcopyrightBackground	"copyrightBackground"
#define XtNcopyrightBorderColor	"copyrightBorderColor"
#define XtNcopyrightBorderWidth	"copyrightBorderWidth"
#define XtCCopyrightBorderWidth	"CopyrightBorderWidth"
#define XtNcopyrightMinTime	"copyrightMinTime"
#define XtCCopyrightMinTime	"copyrightMinTime"
#define XtNcopyrightMaxTime	"copyrightMaxTime"
#define XtCCopyrightMaxTime	"copyrightMaxTime"

/* These can only be gotten, not set */

#define XtNdecWmValueMask	"decWmValueMask"
#define XtCDecWmValueMask	"DecWmValueMask"
#define XtNtitleFont		"titleFont"
#define XtCTitleFont		"TitleFont"
#define XtNiconFont		"iconFont"
#define XtCIconFont		"IconFont"
#define XtNborderWidth		"borderWidth"
#define XtCBorderWidth		"BorderWidth"
#define XtNtitleHeight		"titleHeight"
#define XtCTitleHeight		"TitleHeight"
#define XtNnonTitleWidth	"nonTitleWidth"
#define XtCNonTitleWidth	"NonTitleWidth"
#define XtNiconNameWidth	"iconNameWidth"
#define XtCIconNameWidth	"IconNameWidth"
#define XtNiconifyWidth		"iconifyWidth"
#define XtCIconifyWidth		"IconifyWidth"
#define XtNiconifyHeight	"iconifyHeight"
#define XtCIconifyHeight	"IconifyHeight"
#define XtNiconState		"iconState"
#define XtCIconState		"IconState"

#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)
#endif DECHINTS

/***********************************************************************
 *
 * VendorShell Widget Private Data
 *
 ***********************************************************************/

/* New fields for the VendorShell widget class record */
class VendorShellClassRec : public WMShellClassRec {
    caddr_t         extension;          /* pointer to extension record      */
};
typedef VendorShellClassRec *VendorShellClass;
typedef VendorShellClassRec *VendorShellWidgetClass;

externalref VendorShellClassRec vendorShellClassRec;
externalref WidgetClass vendorShellWidgetClass;

/* New fields for the vendor shell widget. */

class VendorShellRec;
typedef VendorShellRec *VendorShellWidget;
class VendorShellRec : public WMShellRec {
#ifdef DECHINTS
	DECWmHintsRec	dechints;
	WmDecorationGeometryRec decoration;
	WmIconStateRec	icon_state;
	String		icon_box;
	Atom		dec_wm_hints, dec_wm_decoration_geometry,
			dec_wm_icon_box_name, dec_wm_icon_state,
			dec_wm_take_focus,
			dec_wm_char, dec_wm_word;
	/* The next 3 fields are not used but must be maintained for
	   upwards compatibility */
	int		save_size_flags, save_hint_flags, save_dec_flags;
	/* All these fields are obsolete now ... */
	Boolean		copyright;
	String		copyright_notice, copyright_message;
	XFontStruct	*copyright_font;
	Pixel		copyright_foreground, copyright_background,
				copyright_border_color;
	int		copyright_border_width;	
	Window		copyright_window;
	int		copyright_min_time, copyright_max_time;
#ifdef unix
        struct timeval start_time;
#else
        vms_time start_time;
#endif    
	/*... up to here. */
#else
	int		vendor_specific;
#endif DECHINTS
};

#endif _XtVendor_h
/* DON'T ADD STUFF AFTER THIS #endif */
