home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_progs
/
commands
/
cliexe.lha
/
ParMBase.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-04-27
|
6KB
|
201 lines
/*
* ParMBase.h - Copyright © 1991 by S.R. & P.C.
*
* Created: 22 Mar 1991 17:28:15
* Modified: 18 Jan 1992 10:40:27
*
* Make>> make
*/
#define CMDBUFSIZE 255 /* MUST be odd for alignement in ParMConfig */
#define DEFAULT_CMD_WINDOW "CON:0000/0011/0640/0100/Command window/auto/close/wait"
#define DEFAULT_SHELL_WINDOW "CON:0000/0011/0640/0100/Shell/close"
#define DEFAULT_SHELL_CMD "NewShell"
#define DEFAULT_WAIT_CMD "WaitReturn"
#define DEFAULT_TMP_DIR "T:"
#define DEFAULT_MOUSEOPT_FILE "Devs:Mouse.Opt"
/* This only for Mouse stuff */
struct MouseOpt {
USHORT Version; /* Version of this Mouse.Opt file */
BYTE HandlerPri; /* Input Handler priority */
UBYTE NClick; /* Number of click before WindowToFront() ( = 0 if not ) */
USHORT Flags; /* See below */
USHORT Threshold; /* Threshold: minimum varation before acceleration */
USHORT Acc; /* Acceleration factor */
SHORT SunMouse; /* Auto activate window */
USHORT MouseBlank; /* Time before mouse blank, zero to disable */
USHORT ScreenBlank; /* Time before screen blank, zero to disable */
USHORT WTFQual; /* Qualifier for Window to front */
};
#define MOUSEOPT_VERSION 2
#define MO_SCREENTOBACK 0x0001
#define MO_WINDOWTOBACK 0x0002
struct Extended_WBStartup {
struct WBStartup WBStartup;
struct WBArg *ArgArray;
short ArrayLength;
long Stack;
};
struct RunInfo {
char *ri_Cmd; /* Command */
char *ri_Args; /* Command arguments */
char *ri_Window; /* Console when mode = CLI */
long ri_Stack; /* Stack for command */
short ri_Pri; /* Pri of command */
};
struct Extended_MenuItem {
struct MenuItem emi_MenuItem;
struct RunInfo emi_RunInfo;
short emi_Mode; /* TOK_ARUN | TOK_RUN | TOK_WB | TOK_CFG */
USHORT emi_Flags; /* See below */
};
#define EMIF_WBTOFRONT 0x0001 /* Bring WB screen to front just after running cmd */
struct ParMConfig {
struct Window *Win;
struct Menu *LinkMenu;
char CurCfg[80];
char CmdWindow[80];
char ShellWindow[80];
char ShellCmd[80];
char WaitCmd[80];
char TmpDir[40];
char *ReqTitle;
long DefaultStack;
short MenuPen;
short ItemHeight; /* Obsolete */
USHORT ShortCutQual;
BOOL SimpleCmdMode;
char CommandBuffer[CMDBUFSIZE+1];
SHORT ReservedFutureUse[10];
/* Reserved internal use */
struct Menu *CurrentMenu;
struct MenuItem *CurrentSubMenu;
struct MenuItem **CurrentItem;
struct Remember *MemList;
char *mem; /* local to Malloc() */
size_t Avail; /* local to Malloc() */
};
/* ParM Events flags */
#define PEF_PASSTHROUGH 0x0001
#define PEF_SCREENTOFRONT 0x0002
#define PEF_NOCHECK 0x0004
#define PEF_OUT_OF_ORDER 0x0008
struct ParMBase {
struct Library pb_Lib;
ULONG pb_SegList; /* seg list of lib itself */
struct ArpBase *ArpBase; /* Copy of ArpBase */
struct ReqLib *ReqBase; /* Copy of reqBase */
struct IconBase *IconBase; /* Copy of IconBase */
struct LayersBase *LayersBase; /* Copy of LayersBase */
struct MsgPort pb_MsgPort; /* For WB replies */
short pb_MsgCnt; /* Number of WB running processes */
};
/* Tokens.h */
#define TOK_ITEM 1
#define TOK_ARUN 2
#define TOK_RUN 3
#define TOK_SHELL 4
#define TOK_WB 5
#define TOK_CFG 6
#define TOK_WIN 7
#define TOK_PRI 8
#define TOK_STACK 9
#define TOK_MENU 10
#define TOK_SUBMENU 11
#define TOK_ENDSUBMENU 12
#define TOK_COLOR 13
#define TOK_CMDWIN 14
#define TOK_SHELLWIN 15
#define TOK_SHELLCMD 16
#define TOK_WAITCMD 17
#define TOK_TMPDIR 18
#define TOK_SHORTCUTQUAL 19
#define TOK_ACTIVATEKEY 20
#define TOK_PASSTHROUGH 21
#define TOK_SCREENTOFRONT 22
#define TOK_NOCHECK 23
#define TOK_WBTF 24
#define TOK_STR 25 /* not a keyword! */
#define MAX_KEYWORD 24
long ParseMenus(struct ParMConfig *PCfg);
void FreeMenus(struct ParMConfig *PCfg);
long ARun(struct ParMConfig *PCfg, struct RunInfo *Command);
long Run(struct ParMConfig *PCfg, struct RunInfo *Command, BYTE Mode);
long WBRun(struct ParMConfig *PCfg, struct Extended_WBStartup *EWBS, BYTE Pri);
long GetTool(struct ParMConfig *PCfg, struct Extended_WBStartup *EWBS, long Stack);
long MakeWBArg(struct ParMConfig *PCfg, struct WBArg *WBArg, char *Cmd);
struct Extended_WBStartup *MakeWBStartup(struct ParMConfig *PCfg, struct RunInfo *Command);
void WBFree(struct Extended_WBStartup *EWBS);
void Command(struct ParMConfig *PCfg);
void ParseLine(char *cmd);
char *DosError(long);
char *StrIoErr(void);
ULONG MakeMenuShortCut(struct Menu *M, ULONG c);
void InitDefaults(struct ParMConfig *PCfg);
void FreeRepliedWBMessages(void);
void NewMinList(struct MinList *MinList);
char *CopyStr(char *str);
void FreeStr(char *str);
long IsHidden(struct Window *W);
struct Window *GetWindow(void);
struct IORequest *CreateExtIO(struct MsgPort *ioReplyPort, long size);
void CleanUp(struct Menu *Menu, short LeftEdge, short ItemHeight);
void NewCleanUp(struct Menu *Menu, struct TextAttr *MenuFont, short LeftEdge);
void UpdateParMEventsWindow(struct Window *OldWindow, struct Window *NewWindow);
void UpdateMouseOpt(struct MouseOpt *NewMouseOpt);
void GetCurrentMouseOpt(struct MouseOpt *MouseOpt);
#pragma amicall(ParMBase, 0x1e, ParseMenus(a0))
#pragma amicall(ParMBase, 0x24, FreeMenus(a0))
#pragma amicall(ParMBase, 0x2a, ARun(a0,a1))
#pragma amicall(ParMBase, 0x30, Run(a0,a1,d0))
#pragma amicall(ParMBase, 0x36, WBRun(a0,a1,d0))
#pragma amicall(ParMBase, 0x3c, GetTool(a0,a1,d0))
#pragma amicall(ParMBase, 0x42, MakeWBArg(a0,a1,a2))
#pragma amicall(ParMBase, 0x48, MakeWBStartup(a0,a1))
#pragma amicall(ParMBase, 0x4e, WBFree(a0))
#pragma amicall(ParMBase, 0x54, Command(a0))
#pragma amicall(ParMBase, 0x5a, ParseLine(a0))
#pragma amicall(ParMBase, 0x60, DosError(d0))
#pragma amicall(ParMBase, 0x66, StrIoErr())
#pragma amicall(ParMBase, 0x6c, MakeMenuShortCut(a0,d0))
#pragma amicall(ParMBase, 0x72, InitDefaults(a0))
#pragma amicall(ParMBase, 0x78, FreeRepliedWBMessages())
#pragma amicall(ParMBase, 0x7e, NewMinList(a0))
#pragma amicall(ParMBase, 0x84, CopyStr(a0))
#pragma amicall(ParMBase, 0x8a, FreeStr(a0))
#pragma amicall(ParMBase, 0x90, IsHidden(a0))
#pragma amicall(ParMBase, 0x96, GetWindow())
#pragma amicall(ParMBase, 0x9c, CreateExtIO(a0, d0))
#pragma amicall(ParMBase, 0xa2, CleanUp(a0, d0, d1))
#pragma amicall(ParMBase, 0xa8, NewCleanUp(a0, a1, d0))
#pragma amicall(ParMBase, 0xae, UpdateParMEventsWindow(a0, a1))
#pragma amicall(ParMBase, 0xb4, UpdateMouseOpt(a0))
#pragma amicall(ParMBase, 0xba, GetCurrentMouseOpt(a0))