home *** CD-ROM | disk | FTP | other *** search
- /*
- * ParMBase.h - Copyright © 1991 by S.R. & P.C.
- *
- * Created: 22 Mar 1991 17:28:15
- * Modified: 12 Feb 1992 20:45:40
- *
- * 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 AutoCmd {
- struct AutoCmd *ac_Next;
- struct RunInfo ac_RunInfo; /* Cmd associated with file type */
- ULONG ac_FileType; /* Type of the file */
- SHORT ac_Mode; /* TOK_ARUN | TOK_RUN | TOK_WB | TOK_CFG */
- USHORT ac_Flags; /* Same as emi_Flags */
- };
-
-
- 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];
- struct AutoCmd *AutoCmdList;
- ULONG (*GetFileTypeID)(char *IDString);
- SHORT ReservedFutureUse[6];
- /* 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_AUTOCMD 25
- #define TOK_STR 26 /* not a keyword! */
-
- #define MAX_KEYWORD 25
-
-
- 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))
-
-