/* * 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))