home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Games 1996 October
/
Amiga_Games_Extra_CD_10-96.bin
/
userbox
/
publicdomain
/
grabkey
/
source
/
gk_settings.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-07-15
|
8KB
|
276 lines
/*
** GrabKEY
**
** © 1996 by Timo C. Nentwig
** All Rights Reserved !
**
** Tcn@techbase.in-berlin.de
**
**
*/
/// #include
#include "gk_GST.h"
#include "gk_Protos.h"
///
/// proto
proto VOID EvalArgs (VOID);
proto VOID EvalTTypes (VOID);
proto VOID InitSettings (VOID);
proto VOID SaveTTypes (VOID);
///
/// InitSetting ()
/*
* FUNCTION Initialize settings structure.
*
* NOTE
*
* EXAMPLE InitSettings ();
*
*/
VOID
InitSettings (VOID)
{
STRCPY (Set -> Key . Window . Save , "LALT F1");
STRCPY (Set -> Key . Screen . Save , "CTRL F1");
STRCPY (Set -> Key . Window . Clip , "LALT F2");
STRCPY (Set -> Key . Screen . Clip , "CTRL F2");
STRCPY (Set -> Key . Window . Print, "LALT F3");
STRCPY (Set -> Key . Screen . Print, "CTRL F3");
STRCPY (Set -> Sound . Start , "");
STRCPY (Set -> Sound . Done , "");
STRCPY (Set -> Sound . Error , "");
STRCPY (Set -> File . Path , "");
Set -> File . Count = FALSE;
Set -> File . Icon = FALSE;
Set -> Cx . Priority = 0L;
Set -> Cx . PopUp = FALSE;
STRCPY (Set -> Cx . PopKey , "LALT CTRL F1");
}
///
/// EvalTTypes ()
/*
* FUNCTION Evaluate tooltypes.
*
* NOTE
*
* EXAMPLE EvalTTypes ("path:dir/icon);
*
*/
VOID
EvalTTypes (VOID)
{
struct DiskObject *Icon;
// Try to read the icon file
if (Icon = GetDiskObject (PRG_TITLE))
{
#define Item(s) FindToolType (Icon -> do_ToolTypes, s)
STRPTR String;
if (String = Item ("COUNTFILES")) Set -> File . Count = atob (String);
if (String = Item ("ICON")) Set -> File . Icon = atob (String);
if (String = Item ("CX_POPKEY")) STRCPY (Set -> Cx . PopKey, String);
if (String = Item ("CX_POPUP")) Set -> Cx . PopUp = atob (String);
if (String = Item ("CX_PRIORITY")) Set -> Cx . Priority = atol (String);
if (String = Item ("SAVE_WINDOW_KEY")) STRCPY (Set -> Key . Window . Save, String);
if (String = Item ("SAVE_SCREEN_KEY")) STRCPY (Set -> Key . Screen . Save, String);
if (String = Item ("CLIP_WINDOW_KEY")) STRCPY (Set -> Key . Window . Clip, String);
if (String = Item ("CLIP_SCREEN_KEY")) STRCPY (Set -> Key . Screen . Clip, String);
if (String = Item ("PRINT_WINDOW_KEY")) STRCPY (Set -> Key . Window . Print, String);
if (String = Item ("PRINT_SCREEN_KEY")) STRCPY (Set -> Key . Screen . Print, String);
if (String = Item ("SOUND_START")) STRCPY (Set -> Sound . Start, String);
if (String = Item ("SOUND_DONE")) STRCPY (Set -> Sound . Done, String);
if (String = Item ("SOUND_ERROR")) STRCPY (Set -> Sound . Error, String);
if (String = Item ("FILE")) STRCPY (Set -> File . Path, String);
FreeDiskObject (Icon);
}
}
///
/// SaveTTypes ()
/*
* FUNCTION Save settings to tooltypes.
*
* NOTE
*
* EXAMPLE SaveTTypes();
*
*/
VOID
SaveTTypes (VOID)
{
/*
struct DiskObject *Icon;
// Try to read the icon file
if (Icon = GetDiskObject (PRG_TITLE))
{
#define Item(s) FindToolType (Icon -> do_ToolTypes, s)
STRPTR String;
if (Item ("COUNTFILES")) Set -> File . Count = TRUE;
if (String = Item ("CX_POPKEY")) STRCPY (Set -> Cx . PopKey, String);
if (String = Item ("CX_POPUP")) Set -> Cx . PopUp = atob (String);
if (String = Item ("CX_PRIORITY")) Set -> Cx . Priority = atol (String);
if (String = Item ("SAVE_WINDOW_KEY")) STRCPY (Set -> Key . Window . Save, String);
if (String = Item ("SAVE_SCREEN_KEY")) STRCPY (Set -> Key . Screen . Save, String);
if (String = Item ("CLIP_WINDOW_KEY")) STRCPY (Set -> Key . Window . Clip, String);
if (String = Item ("CLIP_SCREEN_KEY")) STRCPY (Set -> Key . Screen . Clip, String);
if (String = Item ("PRINT_WINDOW_KEY")) STRCPY (Set -> Key . Window . Print, String);
if (String = Item ("PRINT_SCREEN_KEY")) STRCPY (Set -> Key . Screen . Print, String);
if (String = Item ("SOUND_START")) STRCPY (Set -> Sound . Start, String);
if (String = Item ("SOUND_DONE")) STRCPY (Set -> Sound . Done, String);
if (String = Item ("SOUND_ERROR")) STRCPY (Set -> Sound . Error, String);
if (String = Item ("FILE")) STRCPY (Set -> File . Path, String);
FreeDiskObject (Icon);
}
else
{
ShowRequest ("OK", "Failed to save to \"" PRG_TITLE "\" !\n");
}
*/
ShowRequest ("Shut up", "SaveTTypes()\n\nNot implementated, yet !\n");
}
///
/// EvalArgs ()
/*
* FUNCTION Evaluate given shell arguments
*
* NOTE
*
* EXAMPLE EvalArgs ();
*
*/
VOID
EvalArgs (VOID)
{
#define ARG_TEMPLATE "CX_PRIORITY/N/K,CX_POPUP/K,CX_POPKEY/K," \
"COUNTFILES/S,ICON/S" \
"SAVE_WINDOW_KEY/K,SAVE_SCREEN_KEY/K," \
"CLIP_WINDOW_KEY/K,CLIP_SCREEN_KEY/K," \
"PRINT_WINDOW_KEY/K,PRINT_SCREEN_KEY/K," \
"SOUND_START/K,SOUND_DONE/K,SOUND_ERROR/K," \
"FILE/K"
enum {
CX_PRIORITY, CX_POPUP, CX_POPKEY,
COUNTFILES, ICON,
SAVE_WINDOW_KEY, SAVE_SCREEN_KEY,
CLIP_WINDOW_KEY, CLIP_SCREEN_KEY,
PRINT_WINDOW_KEY, PRINT_SCREEN_KEY,
SOUND_START, SOUND_DONE, SOUND_ERROR,
FILE,
ARG_COUNT
};
STRPTR *ArgArray;
if (ArgArray = (STRPTR *) AllocVec (sizeof (STRPTR) * (ARG_COUNT), MEMF_ANY | MEMF_CLEAR))
{
struct RDArgs *ArgsPtr;
if (ArgsPtr = (struct RDArgs *) AllocDosObject (DOS_RDARGS, TAG_END))
{
ArgsPtr -> RDA_ExtHelp = "" PRG_TITLE " " PRG_VERSION "\n"
"Copyright © " PRG_YEAR " by " PRG_AUTHOR "\n"
"All Rights Reserved !\n\n"
PRG_EMAIL "\n";
if (ReadArgs (ARG_TEMPLATE, (LONG *) ArgArray, ArgsPtr))
{
if (ArgArray [CX_PRIORITY] ) Set -> Cx . Priority = * (LONG *) ArgArray [CX_PRIORITY];
if (ArgArray [CX_POPUP] ) Set -> Cx . PopUp = atob (ArgArray [CX_POPUP]);
if (ArgArray [CX_POPKEY] ) STRCPY (Set -> Cx . PopKey , ArgArray [CX_POPKEY]);
if (ArgArray [COUNTFILES] ) Set -> File . Count = TRUE;
if (ArgArray [ICON] ) Set -> File . Icon = TRUE;
if (ArgArray [SAVE_WINDOW_KEY] ) STRCPY (Set -> Key . Window . Save , ArgArray [SAVE_WINDOW_KEY]);
if (ArgArray [SAVE_SCREEN_KEY] ) STRCPY (Set -> Key . Screen . Save , ArgArray [SAVE_SCREEN_KEY]);
if (ArgArray [CLIP_WINDOW_KEY] ) STRCPY (Set -> Key . Window . Clip , ArgArray [CLIP_WINDOW_KEY]);
if (ArgArray [CLIP_SCREEN_KEY] ) STRCPY (Set -> Key . Screen . Clip , ArgArray [CLIP_SCREEN_KEY]);
if (ArgArray [PRINT_WINDOW_KEY] ) STRCPY (Set -> Key . Window . Print, ArgArray [PRINT_WINDOW_KEY]);
if (ArgArray [PRINT_SCREEN_KEY] ) STRCPY (Set -> Key . Screen . Print, ArgArray [PRINT_SCREEN_KEY]);
if (ArgArray [SOUND_START] ) STRCPY (Set -> Sound . Start , ArgArray [SOUND_START]);
if (ArgArray [SOUND_DONE] ) STRCPY (Set -> Sound . Done , ArgArray [SOUND_DONE]);
if (ArgArray [SOUND_ERROR] ) STRCPY (Set -> Sound . Error , ArgArray [SOUND_ERROR]);
if (ArgArray [FILE] ) STRCPY (Set -> File . Path , ArgArray [FILE]);
FreeArgs (ArgsPtr);
}
FreeDosObject (DOS_RDARGS, ArgsPtr);
}
FreeVec (ArgArray);
}
}
///