/*** external declarations for settings ***/

/***** the toggles *****/
typedef struct {
	BOOL	pos;		/* position of toggle (ie. off or on) */
	WORD	gadid;		/* index to CheckBox gadget array */
} TOGGLEDATA;

#define NUM_TOGGLES	11
extern TOGGLEDATA toggles[NUM_TOGGLES];

#define clicktofront	toggles[0].pos	/* window depth-change by mouse-clicks */
#define	clicktoback	toggles[1].pos	/* ditto */
#define	autopoint	toggles[2].pos	/* sunmouse */
#define	keyactivate	toggles[3].pos	/* key over window activates */
#define	screencycle	toggles[4].pos	/* clicktoback over backdrop or no window */
#define	autopop		toggles[5].pos	/* autopoptofront */
#define	rmbactivate	toggles[6].pos	/* RMB activates window */
/*#define mouseblank	toggles[8].pos	/* blank mouse when key pressed */
#define wildstar	toggles[9].pos	/* allow '*' as wildcard */
#define scractivate	toggles[10].pos	/* activate window when shuffling screens */

#define MB_NONE		0	/* mouse-blank method */
#define MB_SPRITES	1
#define MB_COPPER	2

#define WILDSTARON	((struct RootNode *)(DOSBase->dl_Root))->rn_Flags |= RNF_WILDSTAR
#define WILDSTAROFF	((struct RootNode *)(DOSBase->dl_Root))->rn_Flags &= ~RNF_WILDSTAR

/***** the hotkeys ******/
#define MAXKEYLEN	49		/* enough? (must be odd!!!) */
typedef struct {
	LONG		msgid;		/* message id of filter */
	CxObj		*filter;	/* filter assoc. with hotkey */
	char		key[MAXKEYLEN+1];/* key-string for this hotkey */
} HOTKEYDATA;

#define NUM_HOTKEYS	14
extern HOTKEYDATA hk[NUM_HOTKEYS];

/* NB: special keys must be at end of list. Their hotkeys cannot be edited. */
#define HK_POPKEY	0L	/* pop-up settings window ***MUST BE FIRST*** */
#define HK_CLOSEKEY	1L	/* close window */
#define HK_ZIPKEY	2L	/* zip window */
#define HK_SHRINKKEY	3L	/* shrink to smallest size */
#define HK_ZOOMKEY	4L	/* enlarge to greatest size */
#define HK_WORKBENCH	5L	/* activate (a) Workbench window */
#define HK_POPPALKEY	6L	/* bring up a palette */
#define HK_POPCLI	7L	/* popcli-key */
#define HK_INSDATE	8L	/* insert date in read-stream */
#define HK_CYCLEWIN	9L	/* move window to front */
#define HK_CYCLESCR	10L	/* move window to front */
#define HK_CENTERSCR	11L	/* center frontmost screen */
#define HK_SCRTOBACK	12L	/* SPECIAL: new lcommand m hotkey */
#define HK_BLANK	13L	/* instant blank */

/***** the patterns *****/
#define PATLEN 99
typedef struct {
    char patstr[PATLEN+1];
    char *pat;
} PATTERNDATA;

#define NUM_PATTERNS 4
extern PATTERNDATA patterns[NUM_PATTERNS];

/* indices of patterns */
#define YP_AUTOSCR_PAT	0
#define YP_CLICKSCR_PAT	1
#define YP_POPWIN_PAT	2
#define YP_CLICKWIN_PAT	3

/* shorthand */
#define autoscrpat	patterns[YP_AUTOSCR_PAT].pat
#define clickscrpat	patterns[YP_CLICKSCR_PAT].pat
#define popwinpat	patterns[YP_POPWIN_PAT].pat
#define clickwinpat	patterns[YP_CLICKWIN_PAT].pat

/***** other settings *****/
#ifdef OLD
extern LONG datefmt;
#endif
extern LONG click_volume;

extern LONG blanktimeout;
extern LONG blanksecs;
extern LONG blankcount;

extern LONG mouseblank;
extern LONG mblanktimeout;
extern LONG mblanksecs;
extern LONG mblankcount;
extern LONG autothresh;
extern LONG threshsqd;

#define POPLEN	255
extern char PopCommand[POPLEN+1];

#define DATELEN	49
extern char DateFormat[DATELEN+1];

/* changed for 1.3 */
#define CONFIG_FILE "S:Yak.prefs"

/*** defines from main.c ***/ 
extern CxObj *broker;
extern struct MsgPort *broker_mp;
extern ULONG wndsigflag;

/*** defines from pri.c ***/ 
/* task priority types */
#define ORIGINAL	0
#define ACTIVE		1

/*** defines for handler.c ***/ 
/* for AutoActivateWindow - why? */
#define SCREEN	0
#define AUTO	1
#define KEY	2
#define RMBACT  3

/*** defines from help.c ***/
#define HELP_ERROR	0
#define HELP_OKAY	1
#define HELP_HIDE	2
#define HELP_QUIT	3

#include "localprotos.h"
