#ifndef	_ARGUSDC_H_
#define	_ARGUSDC_H_

#include <sys/types.h>
#include "dataP.h"

#define	AE_NUM_OPTS	7	/* includes option "other" */
#define	AE_NUM_OPT_VALS	6	/* does not include "other" */

#define	AE_HOUR		(time_t)3600
#define	AE_DAY		(time_t)86400
#define	AE_WEEK		(time_t)604800
#define	AE_MONTH	(time_t)2592000		/* a 30 day month */
#define	AE_SIX_MONTHS	(time_t)15552000	/* 6 30 day months */
#define AE_YEAR		(time_t)31536000	/* a 365 day year */
#define	AE_NO_VAL	(time_t)-1

#ifdef __STDC__
typedef enum TimeKind_en {AE_START, AE_STOP} TimeKind;
typedef enum Stype_en	{AE_ON_OFF, AE_START_TEXT, AE_STOP_TEXT,
			 AE_STOP_INTVL} Stype;
typedef enum Update_en	{AE_NULL, AE_UPEITHER, AE_UPSTOP, AE_UPINTVL} Update; 
#else
typedef int	TimeKind;
typedef int	Stype;
typedef int	Update;

#define	AE_START	0
#define	AE_STOP		1
#define	AE_ON_OFF	0
#define	AE_START_TEXT	1
#define	AE_STOP_TEXT	2
#define	AE_STOP_INTVL	3
#define AE_UPEITHER	1
#define	AE_UPSTOP	2
#define	AE_UPINTVL	3
#endif

#define	AE_MAX_STRING	384
#define AE_NUM_PLUG_WIDGETS	12

typedef struct st_Socket {
	Stype	type;		/* type of info we need to connect */
	EntCode	patch;		/* connection point */
} SocketSt;

typedef SocketSt	*Socket;

typedef struct st_OptValList {
	char	*opt;
	time_t	val;
} OptValList;

OptValList	AlAE_int_opts_vals[AE_NUM_OPTS] = {
	"Hour",		AE_HOUR,
	"Day",		AE_DAY,
	"Week",		AE_WEEK,
	"Moth",		AE_MONTH,
	"Six Months",	AE_SIX_MONTHS,
	"Year",		AE_YEAR,
	"Other",	AE_NO_VAL
};

AlDCinfoSt	AE_chord_changes[PLUGS];	/* for save-update-checking */

char	*AlData_CTGRS[PLUGS] = {
		"Rule Life",
		"Rule Activity",
		"Message Traffic"
};

static Arg	main_form_res[] =
{	{XmNheight, (XtArgVal)270},
	{XmNwidth, (XtArgVal)660},
	{XmNborderWidth, (XtArgVal)2},		/* does this work */
	{XmNhighlightOnEnter, (XtArgVal)TRUE},
	{XmNhighlightThickness, (XtArgVal)1},
	{XmNresizePolicy, (XtArgVal)XmRESIZE_ANY},
	{XmNallowOverlap, (XtArgVal)FALSE},
	{XmNshadowThickness, (XtArgVal)5},
	{XmNrubberPositioning, (XtArgVal)TRUE},
	{XmNhorizontalSpacing, (XtArgVal)0},
	{XmNverticalSpacing, (XtArgVal)0},
	{(char *)NULL, (XtArgVal)NULL}
};

static Arg	title_bar_res[] =
{	{XmNheight, (XtArgVal)37},
	{XmNborderWidth, (XtArgVal)2},
	{XmNhorizontalSpacing, (XtArgVal)0},
	{XmNverticalSpacing, (XtArgVal)0},
	{XmNresizePolicy, (XtArgVal)XmRESIZE_ANY},
	{XmNresizable, (XtArgVal)TRUE},
	{XmNtopAttachment, (XtArgVal)XmATTACH_FORM},
	{XmNleftAttachment, (XtArgVal)XmATTACH_FORM},
	{XmNrightAttachment, (XtArgVal)XmATTACH_FORM},
	{(char *)NULL, (XtArgVal)NULL}
};

static Arg	time_text_res[] =
{	{XmNborderWidth, (XtArgVal)0},
	{XmNshadowThickness, (XtArgVal)0},
	{XmNtraversalOn, (XtArgVal)TRUE},
	{XmNleftAttachment, (XtArgVal)XmATTACH_WIDGET},
	{XmNeditMode, (XtArgVal)XmSINGLE_LINE_EDIT},
	{XmNcolumns, (XtArgVal)32},
	{XmNresizeHeight, (XtArgVal)FALSE},
	{XmNresizeWidth, (XtArgVal)FALSE},
	{XmNeditable, (XtArgVal)FALSE},
	{XmNleftAttachment, (XtArgVal)XmATTACH_WIDGET},
	{(char *)NULL, (XtArgVal)NULL}
};

static Arg	scroll_sec_res[]=
{	{XmNborderWidth, (XtArgVal)1},
	{XmNscrollingPolicy, (XtArgVal)XmAUTOMATIC},
	{XmNscrollBarPlacement, (XtArgVal)XmTOP_LEFT},
	{XmNupdateSliderSize, (XtArgVal)TRUE},
	{XmNspacing, (XtArgVal)0},
	{XmNresizePolicy, (XtArgVal)XmRESIZE_ANY},
	{XmNtopAttachment, (XtArgVal)XmATTACH_WIDGET},
	{XmNbottomAttachment, (XtArgVal)XmATTACH_WIDGET},
	{XmNrightAttachment, (XtArgVal)XmATTACH_FORM},
	{XmNleftAttachment, (XtArgVal)XmATTACH_FORM},
	{XmNresizable, (XtArgVal)TRUE},
	{(char *)NULL, (XtArgVal)NULL}
};

static Arg	gen_button_res[] =
{	{XmNtopAttachment, (XtArgVal)XmATTACH_FORM},
	{XmNbottomAttachment, (XtArgVal)XmATTACH_FORM},
	{XmNresizable, (XtArgVal)FALSE},
	{XmNborderWidth, (XtArgVal)100},
	{XmNwidth, (XtArgVal)3000},
	{XmNshadowThickness, (XtArgVal)150},
	{XmNtopOffset, (XtArgVal)200},
	{XmNbottomOffset, (XtArgVal)200},
	{XmNleftOffset, (XtArgVal)200},
	{XmNrightOffset, (XtArgVal)200},
	{XmNunitType, (XtArgVal)Xm100TH_MILLIMETERS},	/* so popups work */
	{(char *)NULL, (XtArgVal)NULL}
};

#endif
