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

  1. /*
  2.  *    ParMBase.h - Copyright © 1991 by Devil's child.
  3.  *
  4.  *    Created:    22 Mar 1991  17:28:15
  5.  *    Modified:    06 Jul 1991  14:45:06
  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.  
  75.  
  76. struct ParMBase {
  77.     struct Library pb_Lib;
  78.     ULONG  pb_SegList;                    /* seg list of lib itself */
  79.     struct ArpBase  *ArpBase;            /* Copy of ArpBase */
  80.     struct ReqLib   *ReqBase;            /* Copy of reqBase */
  81.     struct IconBase *IconBase;            /* Copy of IconBase */
  82.     struct LayersBase *LayersBase;        /* Copy of LayersBase */
  83.     struct MsgPort  pb_MsgPort;            /* For WB replies */
  84.     short  pb_MsgCnt;                    /* Number of WB running processes */
  85. };
  86.  
  87.  
  88. /* Tokens.h  */
  89.  
  90. #define TOK_ITEM            1
  91. #define TOK_ARUN            2
  92. #define TOK_RUN                3
  93. #define TOK_SHELL            4
  94. #define TOK_WB                5
  95. #define TOK_CFG                6
  96. #define TOK_WIN                7
  97. #define TOK_PRI                8
  98. #define TOK_STACK            9
  99. #define TOK_MENU            10
  100. #define TOK_SUBMENU            11
  101. #define TOK_ENDSUBMENU        12
  102. #define TOK_COLOR            13
  103. #define TOK_CMDWIN            14
  104. #define TOK_SHELLWIN        15
  105. #define TOK_SHELLCMD        16
  106. #define TOK_WAITCMD            17
  107. #define TOK_TMPDIR            18
  108. #define TOK_SHORTCUTQUAL    19
  109. #define TOK_ACTIVATEKEY        20
  110. #define TOK_PASSTHROUGH        21
  111. #define TOK_SCREENTOFRONT    22
  112. #define TOK_STR                23    /* not a keyword! */
  113.  
  114. #define MAX_KEYWORD 22
  115.  
  116.  
  117. long ParseMenus(struct ParMConfig *PCfg);
  118. void FreeMenus(struct ParMConfig *PCfg);
  119. void ARun(struct ParMConfig *PCfg, struct RunInfo *Command);
  120. void Run(struct ParMConfig *PCfg, struct RunInfo *Command, BYTE Mode);
  121. void WBRun(struct ParMConfig *PCfg, struct Extended_WBStartup *EWBS, BYTE Pri);
  122. long GetTool(struct ParMConfig *PCfg, struct Extended_WBStartup *EWBS, long Stack);
  123. long MakeWBArg(struct ParMConfig *PCfg, struct WBArg *WBArg, char *Cmd);
  124. struct Extended_WBStartup *MakeWBStartup(struct ParMConfig *PCfg, struct RunInfo *Command);
  125. void WBFree(struct Extended_WBStartup *EWBS);
  126. void Command(struct ParMConfig *PCfg);
  127. void ParseLine(char *cmd);
  128. char *DosError(long);
  129. char *StrIoErr(void);
  130. ULONG MakeMenuShortCut(struct Menu *M, ULONG c);
  131. void InitDefaults(struct ParMConfig *PCfg);
  132. void FreeRepliedWBMessages(void);
  133. void NewMinList(struct MinList *MinList);
  134. char *CopyStr(char *str);
  135. void FreeStr(char *str);
  136. long IsHidden(struct Window *W);
  137. struct Window *GetWindow(void);
  138. struct IORequest *CreateExtIO(struct MsgPort *ioReplyPort, long size);
  139.  
  140.  
  141. #pragma amicall(ParMBase, 0x1e, ParseMenus(a0))
  142. #pragma amicall(ParMBase, 0x24, FreeMenus(a0))
  143. #pragma amicall(ParMBase, 0x2a, ARun(a0,a1))
  144. #pragma amicall(ParMBase, 0x30, Run(a0,a1,d0))
  145. #pragma amicall(ParMBase, 0x36, WBRun(a0,a1,d0))
  146. #pragma amicall(ParMBase, 0x3c, GetTool(a0,a1,d0))
  147. #pragma amicall(ParMBase, 0x42, MakeWBArg(a0,a1,a2))
  148. #pragma amicall(ParMBase, 0x48, MakeWBStartup(a0,a1))
  149. #pragma amicall(ParMBase, 0x4e, WBFree(a0))
  150. #pragma amicall(ParMBase, 0x54, Command(a0))
  151. #pragma amicall(ParMBase, 0x5a, ParseLine(a0))
  152. #pragma amicall(ParMBase, 0x60, DosError(d0))
  153. #pragma amicall(ParMBase, 0x66, StrIoErr())
  154. #pragma amicall(ParMBase, 0x6c, MakeMenuShortCut(a0,d0))
  155. #pragma amicall(ParMBase, 0x72, InitDefaults(a0))
  156. #pragma amicall(ParMBase, 0x78, FreeRepliedWBMessages())
  157. #pragma amicall(ParMBase, 0x7e, NewMinList(a0))
  158. #pragma amicall(ParMBase, 0x84, CopyStr(a0))
  159. #pragma amicall(ParMBase, 0x8a, FreeStr(a0))
  160. #pragma amicall(ParMBase, 0x90, IsHidden(a0))
  161. #pragma amicall(ParMBase, 0x96, GetWindow())
  162. #pragma amicall(ParMBase, 0x9c, CreateExtIO(a0, d0))
  163.  
  164.