// This may look like C code, but it is really -*- C++ -*-

/***********************************************************
Copyright 1991 by the Massachusetts Institute of Technology

Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation, and that the name of M.I.T. not be used in advertising or
publicity pertaining to distribution of the software without specific,
written prior permission.  M.I.T. makes no representations about the
suitability of this software for any purpose.  It is provided "as is"
without express or implied warranty.

Original idea : Charles Haynes - DEC
Author: Roman J. Budzianowski - Project Athena MIT

******************************************************************/

#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
 *
 ***********************************************************************/

externalref WidgetClass vendorShellWidgetClass;

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


class VendorShellWidget : public WMShellWidget {
#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 */
