/*
 * Variables controlling Yak settings.
 * Routines for initialisation at startup.
 */

#include <exec/types.h>
#include "yak.h"
#include "popup.h"

#define DEF_POPCOMMAND	"NewShell CON:0/178//78/AmigaShell/CLOSE"
#define DEF_VOLUME	48
#define DEF_BLANKSECS	300

LONG	datefmt;		/* used by dateinsert */
LONG	click_volume;		/* used for keyclick */
char	PopCommand[POPLEN];	/* used for PopCLI */
LONG	blanktimeout;
LONG	blanksecs;
LONG	blankcount;		/* countdown to blank-time */
WORD	mblankcount;		/* countdown to mouse-blank-time */

BOOL toggles[NUM_TOGGLES];
TOGGLEDATA toggledata[] = {
	"CLICKTOFRONT",	GDX_CTFCheck,	TRUE,
	"CLICKTOBACK",	GDX_CTBCheck,	TRUE,
	"AUTOPOINT",	GDX_AutoCheck,	TRUE,
	"KEYACTIVATE",	GDX_KeyActCheck,FALSE,
	"SCREENCYCLE",	GDX_ScrCycleCheck,TRUE,
	"DAY",		GDX_DayCheck,	TRUE,
	"DATE",		GDX_DateCheck,	TRUE,
	"TIME",		GDX_TimeCheck,	FALSE,
	"MOUSEBLANK",	GDX_MBlankCheck,TRUE
};

struct HotKeyData hk[NUM_HOTKEYS] = {
	{ HK_POPKEY,	NULL, "CX_POPKEY",	"",	"RCommand help" },
	{ HK_CLOSEKEY,	NULL, "CLOSEWINDOW",	"",	"control esc" },
	{ HK_ZIPKEY,	NULL, "ZIPWINDOW",	"",	"control z" },
	{ HK_SHRINKKEY,	NULL, "MAKESMALL",	"",	"lcommand [" },
	{ HK_ZOOMKEY,	NULL, "MAKEBIG",	"",	"lcommand ]" },
	{ HK_WORKBENCH,	NULL, "WORKBENCH",	"",	"lcommand w" },
	{ HK_POPPALKEY,	NULL, "PALETTE",	"",	"lcommand p" },
	{ HK_POPCLI,	NULL, "POPCOMMKEY",	"",	"lcommand esc" },
	{ HK_INSDATE,	NULL, "INSERTDATE",	"",	"lcommand d" }
};

static void
InitToggles(char **ttypes)
{
	UWORD	i;

	for (i = 0; i < NUM_TOGGLES; i++)
		toggles[i] = ArgBool(ttypes, toggledata[i].tooltype, toggledata[i].defval);
}

static BOOL
InitHotKeys(char **ttypes)
{
	char	*keystr;
	UWORD	i;

	for (i = 0; i < NUM_HOTKEYS; i++)
	{
		keystr = ArgString(ttypes, hk[i].ttype, hk[i].defkey);
		if (!AddHotKey(keystr, i))
			return FALSE;
	}
	return TRUE;
}

BOOL
InitSettings(char **ttypes)
{
	strcpy(PopCommand, ArgString(ttypes, "POPCLICOMMAND", DEF_POPCOMMAND));
	click_volume = ArgInt(ttypes, "VOLUME", DEF_VOLUME);
	datefmt = ArgInt(ttypes, "DATEFORMAT", 0);

	blanksecs = ArgInt(ttypes, "SCRTIMEOUT", DEF_BLANKSECS);
	blankcount = blanktimeout = 10*blanksecs;
	mblankcount = mblanktimeout;

	InitToggles(ttypes);
	return InitHotKeys(ttypes);
}
