home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 632.lha / CLIExe_v1.1 / ParMBase.h < prev    next >
C/C++ Source or Header  |  1992-04-27  |  6KB  |  201 lines

  1. /*
  2.  *    ParMBase.h - Copyright © 1991 by S.R. & P.C.
  3.  *
  4.  *    Created:    22 Mar 1991  17:28:15
  5.  *    Modified:    18 Jan 1992  10:40:27
  6.  *
  7.  *    Make>> make
  8.  */
  9.  
  10. #define CMDBUFSIZE    255        /* MUST be odd for alignement in ParMConfig */
  11.  
  12. #define DEFAULT_CMD_WINDOW        "CON:0000/0011/0640/0100/Command window/auto/close/wait"
  13. #define DEFAULT_SHELL_WINDOW    "CON:0000/0011/0640/0100/Shell/close"
  14. #define DEFAULT_SHELL_CMD        "NewShell"
  15. #define DEFAULT_WAIT_CMD        "WaitReturn"
  16. #define DEFAULT_TMP_DIR            "T:"
  17. #define DEFAULT_MOUSEOPT_FILE    "Devs:Mouse.Opt"
  18.  
  19.  
  20. /* This only for Mouse stuff */
  21.  
  22. struct MouseOpt {
  23.     USHORT Version;                /* Version of this Mouse.Opt file */
  24.     BYTE HandlerPri;            /* Input Handler priority */
  25.     UBYTE NClick;                /* Number of click before WindowToFront() ( = 0 if not ) */
  26.     USHORT Flags;                /* See below */
  27.     USHORT Threshold;            /* Threshold: minimum varation before acceleration */
  28.     USHORT Acc;                    /* Acceleration factor */
  29.     SHORT SunMouse;                /* Auto activate window */
  30.     USHORT MouseBlank;            /* Time before mouse blank, zero to disable */
  31.     USHORT ScreenBlank;            /* Time before screen blank, zero to disable */
  32.     USHORT WTFQual;                /* Qualifier for Window to front */
  33. };
  34.  
  35. #define MOUSEOPT_VERSION    2
  36.  
  37. #define MO_SCREENTOBACK        0x0001
  38. #define MO_WINDOWTOBACK        0x0002
  39.  
  40.  
  41. struct Extended_WBStartup {
  42.     struct WBStartup WBStartup;
  43.     struct WBArg *ArgArray;
  44.     short ArrayLength;
  45.     long Stack;
  46. };
  47.  
  48.  
  49. struct RunInfo {
  50.     char  *ri_Cmd;        /* Command */
  51.     char  *ri_Args;        /* Command arguments */
  52.     char  *ri_Window;    /* Console when mode = CLI */
  53.     long  ri_Stack;        /* Stack for command */
  54.     short ri_Pri;        /* Pri of command */
  55. };
  56.  
  57.  
  58. struct Extended_MenuItem {
  59.     struct MenuItem emi_MenuItem;
  60.     struct RunInfo emi_RunInfo;
  61.     short emi_Mode;                    /* TOK_ARUN | TOK_RUN | TOK_WB | TOK_CFG */
  62.     USHORT emi_Flags;                /* See below */
  63. };
  64.  
  65. #define EMIF_WBTOFRONT    0x0001        /* Bring WB screen to front just after running cmd */
  66.  
  67.  
  68. struct ParMConfig {
  69.     struct Window *Win;
  70.     struct Menu *LinkMenu;
  71.     char CurCfg[80];
  72.     char CmdWindow[80];
  73.     char ShellWindow[80];
  74.     char ShellCmd[80];
  75.     char WaitCmd[80];
  76.     char TmpDir[40];
  77.     char *ReqTitle;
  78.     long DefaultStack;
  79.     short MenuPen;
  80.     short ItemHeight;        /* Obsolete */
  81.     USHORT ShortCutQual;
  82.     BOOL SimpleCmdMode;
  83.     char CommandBuffer[CMDBUFSIZE+1];
  84.     SHORT ReservedFutureUse[10];
  85.     /* Reserved internal use */
  86.     struct Menu *CurrentMenu;
  87.     struct MenuItem *CurrentSubMenu;
  88.     struct MenuItem **CurrentItem;
  89.     struct Remember *MemList;
  90.     char *mem;            /* local to Malloc() */
  91.     size_t Avail;        /* local to Malloc() */
  92. };
  93.  
  94.  
  95. /* ParM Events flags */
  96. #define PEF_PASSTHROUGH        0x0001
  97. #define PEF_SCREENTOFRONT    0x0002
  98. #define PEF_NOCHECK            0x0004
  99. #define PEF_OUT_OF_ORDER    0x0008
  100.  
  101.  
  102. struct ParMBase {
  103.     struct Library pb_Lib;
  104.     ULONG  pb_SegList;                    /* seg list of lib itself */
  105.     struct ArpBase  *ArpBase;            /* Copy of ArpBase */
  106.     struct ReqLib   *ReqBase;            /* Copy of reqBase */
  107.     struct IconBase *IconBase;            /* Copy of IconBase */
  108.     struct LayersBase *LayersBase;        /* Copy of LayersBase */
  109.     struct MsgPort  pb_MsgPort;            /* For WB replies */
  110.     short  pb_MsgCnt;                    /* Number of WB running processes */
  111. };
  112.  
  113.  
  114. /* Tokens.h  */
  115.  
  116. #define TOK_ITEM            1
  117. #define TOK_ARUN            2
  118. #define TOK_RUN                3
  119. #define TOK_SHELL            4
  120. #define TOK_WB                5
  121. #define TOK_CFG                6
  122. #define TOK_WIN                7
  123. #define TOK_PRI                8
  124. #define TOK_STACK            9
  125. #define TOK_MENU            10
  126. #define TOK_SUBMENU            11
  127. #define TOK_ENDSUBMENU        12
  128. #define TOK_COLOR            13
  129. #define TOK_CMDWIN            14
  130. #define TOK_SHELLWIN        15
  131. #define TOK_SHELLCMD        16
  132. #define TOK_WAITCMD            17
  133. #define TOK_TMPDIR            18
  134. #define TOK_SHORTCUTQUAL    19
  135. #define TOK_ACTIVATEKEY        20
  136. #define TOK_PASSTHROUGH        21
  137. #define TOK_SCREENTOFRONT    22
  138. #define TOK_NOCHECK            23
  139. #define TOK_WBTF            24
  140. #define TOK_STR                25    /* not a keyword! */
  141.  
  142. #define MAX_KEYWORD 24
  143.  
  144.  
  145. long ParseMenus(struct ParMConfig *PCfg);
  146. void FreeMenus(struct ParMConfig *PCfg);
  147. long ARun(struct ParMConfig *PCfg, struct RunInfo *Command);
  148. long Run(struct ParMConfig *PCfg, struct RunInfo *Command, BYTE Mode);
  149. long WBRun(struct ParMConfig *PCfg, struct Extended_WBStartup *EWBS, BYTE Pri);
  150. long GetTool(struct ParMConfig *PCfg, struct Extended_WBStartup *EWBS, long Stack);
  151. long MakeWBArg(struct ParMConfig *PCfg, struct WBArg *WBArg, char *Cmd);
  152. struct Extended_WBStartup *MakeWBStartup(struct ParMConfig *PCfg, struct RunInfo *Command);
  153. void WBFree(struct Extended_WBStartup *EWBS);
  154. void Command(struct ParMConfig *PCfg);
  155. void ParseLine(char *cmd);
  156. char *DosError(long);
  157. char *StrIoErr(void);
  158. ULONG MakeMenuShortCut(struct Menu *M, ULONG c);
  159. void InitDefaults(struct ParMConfig *PCfg);
  160. void FreeRepliedWBMessages(void);
  161. void NewMinList(struct MinList *MinList);
  162. char *CopyStr(char *str);
  163. void FreeStr(char *str);
  164. long IsHidden(struct Window *W);
  165. struct Window *GetWindow(void);
  166. struct IORequest *CreateExtIO(struct MsgPort *ioReplyPort, long size);
  167. void CleanUp(struct Menu *Menu, short LeftEdge, short ItemHeight);
  168. void NewCleanUp(struct Menu *Menu, struct TextAttr *MenuFont, short LeftEdge);
  169. void UpdateParMEventsWindow(struct Window *OldWindow, struct Window *NewWindow);
  170. void UpdateMouseOpt(struct MouseOpt *NewMouseOpt);
  171. void GetCurrentMouseOpt(struct MouseOpt *MouseOpt);
  172.  
  173. #pragma amicall(ParMBase, 0x1e, ParseMenus(a0))
  174. #pragma amicall(ParMBase, 0x24, FreeMenus(a0))
  175. #pragma amicall(ParMBase, 0x2a, ARun(a0,a1))
  176. #pragma amicall(ParMBase, 0x30, Run(a0,a1,d0))
  177. #pragma amicall(ParMBase, 0x36, WBRun(a0,a1,d0))
  178. #pragma amicall(ParMBase, 0x3c, GetTool(a0,a1,d0))
  179. #pragma amicall(ParMBase, 0x42, MakeWBArg(a0,a1,a2))
  180. #pragma amicall(ParMBase, 0x48, MakeWBStartup(a0,a1))
  181. #pragma amicall(ParMBase, 0x4e, WBFree(a0))
  182. #pragma amicall(ParMBase, 0x54, Command(a0))
  183. #pragma amicall(ParMBase, 0x5a, ParseLine(a0))
  184. #pragma amicall(ParMBase, 0x60, DosError(d0))
  185. #pragma amicall(ParMBase, 0x66, StrIoErr())
  186. #pragma amicall(ParMBase, 0x6c, MakeMenuShortCut(a0,d0))
  187. #pragma amicall(ParMBase, 0x72, InitDefaults(a0))
  188. #pragma amicall(ParMBase, 0x78, FreeRepliedWBMessages())
  189. #pragma amicall(ParMBase, 0x7e, NewMinList(a0))
  190. #pragma amicall(ParMBase, 0x84, CopyStr(a0))
  191. #pragma amicall(ParMBase, 0x8a, FreeStr(a0))
  192. #pragma amicall(ParMBase, 0x90, IsHidden(a0))
  193. #pragma amicall(ParMBase, 0x96, GetWindow())
  194. #pragma amicall(ParMBase, 0x9c, CreateExtIO(a0, d0))
  195. #pragma amicall(ParMBase, 0xa2, CleanUp(a0, d0, d1))
  196. #pragma amicall(ParMBase, 0xa8, NewCleanUp(a0, a1, d0))
  197. #pragma amicall(ParMBase, 0xae, UpdateParMEventsWindow(a0, a1))
  198. #pragma amicall(ParMBase, 0xb4, UpdateMouseOpt(a0))
  199. #pragma amicall(ParMBase, 0xba, GetCurrentMouseOpt(a0))
  200.  
  201.