home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 552.lha / ParM_v3.0 / source.LZH / source / ParMBase.h < prev    next >
C/C++ Source or Header  |  1991-07-19  |  5KB  |  168 lines

  1. /*
  2.  *    ParMBase.h - Copyright © 1991 by Devil's child.
  3.  *
  4.  *    Created:    22 Mar 1991  17:28:15
  5.  *    Modified:    19 Jul 1991  22:00:02
  6.  *
  7.  *    Make>> make
  8.  */
  9.  
  10.  
  11. #define CMDBUFSIZE    255        /* MUST be odd for alignement in ParMConfig */
  12.  
  13. #define DEFAULT_CMD_WINDOW        "CON:0000/0011/0640/0100/Command window"
  14. #define DEFAULT_SHELL_WINDOW    "CON:0000/0011/0640/0100/Shell"
  15. #define DEFAULT_SHELL_CMD        "AShell"
  16. #define DEFAULT_WAIT_CMD        "WaitReturn"
  17. #define DEFAULT_TMP_DIR            "T:"
  18.  
  19.  
  20. struct Extended_WBStartup {
  21.     struct WBStartup WBStartup;
  22.     struct WBArg *ArgArray;
  23.     short ArrayLength;
  24.     long Stack;
  25. };
  26.  
  27.  
  28. struct RunInfo {
  29.     char  *ri_Cmd;        /* Command */
  30.     char  *ri_Args;        /* Command arguments */
  31.     char  *ri_Window;    /* Console when mode = CLI */
  32.     long  ri_Stack;        /* Stack for command */
  33.     short ri_Pri;        /* Pri of command */
  34. };
  35.  
  36.  
  37. struct Extended_MenuItem {
  38.     struct MenuItem emi_MenuItem;
  39.     struct RunInfo emi_RunInfo;
  40.     short emi_Mode;                    /* TOK_ARUN | TOK_RUN | TOK_WB | TOK_CFG */
  41. };
  42.  
  43.  
  44. struct ParMConfig {
  45.     struct Window *Win;
  46.     struct Menu *LinkMenu;
  47.     char CurCfg[80];
  48.     char CmdWindow[80];
  49.     char ShellWindow[80];
  50.     char ShellCmd[80];
  51.     char WaitCmd[80];
  52.     char TmpDir[40];
  53.     char *ReqTitle;
  54.     long DefaultStack;
  55.     short MenuPen;
  56.     short ItemHeight;
  57.     USHORT ShortCutQual;
  58.     BOOL SimpleCmdMode;
  59.     char CommandBuffer[CMDBUFSIZE+1];
  60.     SHORT ReservedFutureUse[10];
  61.     /* Reserved internal use */
  62.     struct Menu *CurrentMenu;
  63.     struct MenuItem *CurrentSubMenu;
  64.     struct MenuItem **CurrentItem;
  65.     struct Remember *MemList;
  66.     char *mem;            /* local to Malloc() */
  67.     size_t Avail;        /* local to Malloc() */
  68. };
  69.  
  70.  
  71. /* ParM Events flags */
  72. #define PEF_PASSTHROUGH        0x0001
  73. #define PEF_SCREENTOFRONT    0x0002
  74. #define PEF_NOCHECK            0x0004
  75.  
  76.  
  77. struct ParMBase {
  78.     struct Library pb_Lib;
  79.     ULONG  pb_SegList;                    /* seg list of lib itself */
  80.     struct ArpBase  *ArpBase;            /* Copy of ArpBase */
  81.     struct ReqLib   *ReqBase;            /* Copy of reqBase */
  82.     struct IconBase *IconBase;            /* Copy of IconBase */
  83.     struct LayersBase *LayersBase;        /* Copy of LayersBase */
  84.     struct MsgPort  pb_MsgPort;            /* For WB replies */
  85.     short  pb_MsgCnt;                    /* Number of WB running processes */
  86. };
  87.  
  88.  
  89. /* Tokens.h  */
  90.  
  91. #define TOK_ITEM            1
  92. #define TOK_ARUN            2
  93. #define TOK_RUN                3
  94. #define TOK_SHELL            4
  95. #define TOK_WB                5
  96. #define TOK_CFG                6
  97. #define TOK_WIN                7
  98. #define TOK_PRI                8
  99. #define TOK_STACK            9
  100. #define TOK_MENU            10
  101. #define TOK_SUBMENU            11
  102. #define TOK_ENDSUBMENU        12
  103. #define TOK_COLOR            13
  104. #define TOK_CMDWIN            14
  105. #define TOK_SHELLWIN        15
  106. #define TOK_SHELLCMD        16
  107. #define TOK_WAITCMD            17
  108. #define TOK_TMPDIR            18
  109. #define TOK_SHORTCUTQUAL    19
  110. #define TOK_ACTIVATEKEY        20
  111. #define TOK_PASSTHROUGH        21
  112. #define TOK_SCREENTOFRONT    22
  113. #define TOK_NOCHECK            23
  114. #define TOK_STR                24    /* not a keyword! */
  115.  
  116. #define MAX_KEYWORD 23
  117.  
  118.  
  119. long ParseMenus(struct ParMConfig *PCfg);
  120. void FreeMenus(struct ParMConfig *PCfg);
  121. void ARun(struct ParMConfig *PCfg, struct RunInfo *Command);
  122. void Run(struct ParMConfig *PCfg, struct RunInfo *Command, BYTE Mode);
  123. void WBRun(struct ParMConfig *PCfg, struct Extended_WBStartup *EWBS, BYTE Pri);
  124. long GetTool(struct ParMConfig *PCfg, struct Extended_WBStartup *EWBS, long Stack);
  125. long MakeWBArg(struct ParMConfig *PCfg, struct WBArg *WBArg, char *Cmd);
  126. struct Extended_WBStartup *MakeWBStartup(struct ParMConfig *PCfg, struct RunInfo *Command);
  127. void WBFree(struct Extended_WBStartup *EWBS);
  128. void Command(struct ParMConfig *PCfg);
  129. void ParseLine(char *cmd);
  130. char *DosError(long);
  131. char *StrIoErr(void);
  132. ULONG MakeMenuShortCut(struct Menu *M, ULONG c);
  133. void InitDefaults(struct ParMConfig *PCfg);
  134. void FreeRepliedWBMessages(void);
  135. void NewMinList(struct MinList *MinList);
  136. char *CopyStr(char *str);
  137. void FreeStr(char *str);
  138. long IsHidden(struct Window *W);
  139. struct Window *GetWindow(void);
  140. struct IORequest *CreateExtIO(struct MsgPort *ioReplyPort, long size);
  141. void CleanUp(struct Menu *Menu, short LeftEdge, short ItemHeight);
  142.  
  143.  
  144. #pragma amicall(ParMBase, 0x1e, ParseMenus(a0))
  145. #pragma amicall(ParMBase, 0x24, FreeMenus(a0))
  146. #pragma amicall(ParMBase, 0x2a, ARun(a0,a1))
  147. #pragma amicall(ParMBase, 0x30, Run(a0,a1,d0))
  148. #pragma amicall(ParMBase, 0x36, WBRun(a0,a1,d0))
  149. #pragma amicall(ParMBase, 0x3c, GetTool(a0,a1,d0))
  150. #pragma amicall(ParMBase, 0x42, MakeWBArg(a0,a1,a2))
  151. #pragma amicall(ParMBase, 0x48, MakeWBStartup(a0,a1))
  152. #pragma amicall(ParMBase, 0x4e, WBFree(a0))
  153. #pragma amicall(ParMBase, 0x54, Command(a0))
  154. #pragma amicall(ParMBase, 0x5a, ParseLine(a0))
  155. #pragma amicall(ParMBase, 0x60, DosError(d0))
  156. #pragma amicall(ParMBase, 0x66, StrIoErr())
  157. #pragma amicall(ParMBase, 0x6c, MakeMenuShortCut(a0,d0))
  158. #pragma amicall(ParMBase, 0x72, InitDefaults(a0))
  159. #pragma amicall(ParMBase, 0x78, FreeRepliedWBMessages())
  160. #pragma amicall(ParMBase, 0x7e, NewMinList(a0))
  161. #pragma amicall(ParMBase, 0x84, CopyStr(a0))
  162. #pragma amicall(ParMBase, 0x8a, FreeStr(a0))
  163. #pragma amicall(ParMBase, 0x90, IsHidden(a0))
  164. #pragma amicall(ParMBase, 0x96, GetWindow())
  165. #pragma amicall(ParMBase, 0x9c, CreateExtIO(a0, d0))
  166. #pragma amicall(ParMBase, 0xa2, CleanUp(a0, d0, d1))
  167.  
  168.