home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / jËzyki_programowania / ace_basic / ace / include / libraries / amigaguide.h next >
C/C++ Source or Header  |  1977-12-31  |  9KB  |  271 lines

  1. #ifndef LIBRARIES_AMIGAGUIDE_H
  2. #define LIBRARIES_AMIGAGUIDE_H 1
  3. /*
  4. ** amigaguide.h for ACE Basic
  5. **
  6. ** Note: Translated to ACE by ConvertC2ACE
  7. **       @ MapMeadow Software, Nils Sjoholm
  8. **
  9. **
  10. ** Date: 09/01/95
  11. **
  12. **
  13. */
  14.  
  15. /*
  16. ** This are the StructPointer defines for amigaguide.h
  17. */
  18. #ifndef AmigaGuideHostPtr
  19. #define AmigaGuideHostPtr ADDRESS
  20. #endif
  21. #ifndef AmigaGuideMsgPtr
  22. #define AmigaGuideMsgPtr ADDRESS
  23. #endif
  24. #ifndef NewAmigaGuidePtr
  25. #define NewAmigaGuidePtr ADDRESS
  26. #endif
  27. #ifndef XRefPtr
  28. #define XRefPtr ADDRESS
  29. #endif
  30. #ifndef opExpungeNodePtr
  31. #define opExpungeNodePtr ADDRESS
  32. #endif
  33. #ifndef opFindHostPtr
  34. #define opFindHostPtr ADDRESS
  35. #endif
  36. #ifndef opNodeIOPtr
  37. #define opNodeIOPtr ADDRESS
  38. #endif
  39. /*
  40. ** End of StructPointer defines for amigaguide.h
  41. */
  42.  
  43.  
  44. #ifndef EXEC_TYPES_H
  45. #include <exec/types.h>
  46. #endif /* EXEC_TYPES_H */
  47.  
  48. #ifndef EXEC_LISTS_H
  49. #include <exec/lists.h>
  50. #endif /* EXEC_LISTS_H */
  51.  
  52. #ifndef EXEC_NODES_H
  53. #include <exec/nodes.h>
  54. #endif /* EXEC_NODES_H */
  55.  
  56. #ifndef EXEC_SEMAPHORES_H
  57. #include <exec/semaphores.h>
  58. #endif
  59.  
  60. #ifndef INTUITION_INTUITION_H
  61. #include <intuition/intuition.h>
  62. #endif
  63.  
  64. #ifndef INTUITION_SCREENS_H
  65. #include <intuition/screens.h>
  66. #endif
  67.  
  68. #ifndef INTUITION_CLASSUSR_H
  69. #include <intuition/classusr.h>
  70. #endif
  71.  
  72. #ifndef DO_DOS_H
  73. #include <dos/dos.h>
  74. #endif
  75.  
  76. #ifndef UTILITY_TAGITEM_H
  77. #include <utility/tagitem.h>
  78. #endif
  79.  
  80. #ifndef APSH_TOOL_ID
  81. #define APSH_TOOL_ID 11000&
  82. #define StartupMsgID        (APSH_TOOL_ID+1&)   /* Startup MESSAGE */
  83. #define LoginToolID     (APSH_TOOL_ID+2&)   /* Login a tool SIPC port */
  84. #define LogoutToolID        (APSH_TOOL_ID+3&)   /* Logout a tool SIPC port */
  85. #define ShutdownMsgID       (APSH_TOOL_ID+4&)   /* Shutdown message */
  86. #define ActivateToolID      (APSH_TOOL_ID+5&)   /* Activate tool */
  87. #define DeactivateToolID    (APSH_TOOL_ID+6&)   /* Deactivate tool */
  88. #define ActiveToolID        (APSH_TOOL_ID+7&)   /* Tool Active */
  89. #define InactiveToolID      (APSH_TOOL_ID+8&)   /* Tool Inactive */
  90. #define ToolStatusID        (APSH_TOOL_ID+9&)   /* Status message */
  91. #define ToolCmdID       (APSH_TOOL_ID+10&)  /* Tool command message */
  92. #define ToolCmdReplyID      (APSH_TOOL_ID+11&)  /* Reply to tool command */
  93. #define ShutdownToolID      (APSH_TOOL_ID+12&)  /* Shutdown tool */
  94. #endif
  95.  
  96. /* Attributes accepted by GetAmigaGuideAttr() */
  97. #define AGA_Dummy       (TAG_USER)
  98. #define AGA_Path        (AGA_Dummy+1)
  99. #define AGA_XRefList        (AGA_Dummy+2)
  100. #define AGA_Activate        (AGA_Dummy+3)
  101. #define AGA_Context     (AGA_Dummy+4)
  102.  
  103. #define AGA_HelpGroup       (AGA_Dummy+5)
  104.     /* (LONGINT) Unique identifier */
  105.  
  106. #define AGA_Reserved1       (AGA_Dummy+6)
  107. #define AGA_Reserved2       (AGA_Dummy+7)
  108. #define AGA_Reserved3       (AGA_Dummy+8)
  109.  
  110. #define AGA_ARexxPort       (AGA_Dummy+9)
  111.     /* (STRUCT MsgPort *) Pointer to the ARexx message port (V40) */
  112.  
  113. #define AGA_ARexxPortName   (AGA_Dummy+10)
  114.    /* (ADDRESS) Used to specify the ARexx port name (V40) (not copied) */
  115.  
  116.  
  117. #define AMIGAGUIDECONTEXT ADDRESS
  118.  
  119. STRUCT AmigaGuideMsg
  120.  
  121.     _Message agm_Msg            /* Embedded Exec message structure */
  122.     LONGINT        agm_Type           /* Type of message */
  123.     ADDRESS         agm_Data           /* Pointer to message data */
  124.     LONGINT        agm_DSize          /* Size of message data */
  125.     LONGINT        agm_DType          /* Type of message data */
  126.     LONGINT        agm_Pri_Ret            /* Primary return value */
  127.     LONGINT        agm_Sec_Ret            /* Secondary return value */
  128.     ADDRESS         agm_System1 
  129.     ADDRESS         agm_System2 
  130. END STRUCT 
  131.  
  132. /* Allocation description structure */
  133. STRUCT NewAmigaGuide
  134.  
  135.     ADDRESS         nag_Lock           /* Lock on the document directory */
  136.     ADDRESS       nag_Name           /* Name of document file */
  137.     ScreenPtr  nag_Screen             /* Screen to place windows within */
  138.     ADDRESS       nag_PubScreen          /* Public screen name to open on */
  139.     ADDRESS       nag_HostPort           /* Application's ARexx port name */
  140.     ADDRESS       nag_ClientPort         /* Name to assign to the clients ARexx port */
  141.     ADDRESS       nag_BaseName           /* Base name of the application */
  142.     LONGINT        nag_Flags          /* Flags */
  143.     ADDRESS       nag_Context            /* NULL terminated context table */
  144.     ADDRESS       nag_Node           /* Node to align on first (defaults to Main) */
  145.     LONGINT         nag_Line           /* Line to align on */
  146.     TagItemPtr  nag_Extens             /* Tag array extension */
  147.     ADDRESS   nag_Client             /* Private! MUST be NULL */
  148. END STRUCT 
  149.  
  150. /* public Client flags */
  151. #define HTF_LOAD_INDEX      (1&)         /* Force load the index at init time */
  152. #define HTF_LOAD_ALL        (2&)         /* Force load the entire database at init */
  153. #define HTF_CACHE_NODE      (4&)         /* Cache each node as visited */
  154. #define HTF_CACHE_DB        (8&)         /* Keep the buffers around until expunge */
  155. #define HTF_UNIQUE      (32768&)        /* Unique ARexx port name */
  156. #define HTF_NOACTIVATE      (65536&)        /* Don't activate window */
  157.  
  158. #define HTFC_SYSGADS        &H80000000
  159.  
  160. /* Callback function ID's */
  161. #define HTH_OPEN        0
  162. #define HTH_CLOSE       1
  163.  
  164. #define HTERR_NOT_ENOUGH_MEMORY     100&
  165. #define HTERR_CANT_OPEN_DATABASE    101&
  166. #define HTERR_CANT_FIND_NODE        102&
  167. #define HTERR_CANT_OPEN_NODE        103&
  168. #define HTERR_CANT_OPEN_WINDOW      104&
  169. #define HTERR_INVALID_COMMAND       105&
  170. #define HTERR_CANT_COMPLETE     106&
  171. #define HTERR_PORT_CLOSED       107&
  172. #define HTERR_CANT_CREATE_PORT      108&
  173. #define HTERR_KEYWORD_NOT_FOUND     113&
  174.  
  175. /*
  176. typedef STRUCT AmigaGuideHost *AMIGAGUIDEHOST 
  177. */
  178.  
  179. /* Cross reference node */
  180. STRUCT XRef
  181.  
  182.     Node xr_Node            /* Embedded node */
  183.     SHORTINT        xr_Pad             /* Padding */
  184.     DocFilePtr  xr_DF              /* Document defined in */
  185.     ADDRESS       xr_File            /* Name of document file */
  186.     ADDRESS       xr_Name            /* Name of item */
  187.     LONGINT         xr_Line            /* Line defined at */
  188. END STRUCT 
  189.  
  190. #define XRSIZE  (SIZEOF(XRef))
  191.  
  192. /* Types of cross reference nodes */
  193. #define XR_GENERIC  0
  194. #define XR_FUNCTION 1
  195. #define XR_COMMAND  2
  196. #define XR_INCLUDE  3
  197. #define XR_MACRO    4
  198. #define XR_STRUCT   5
  199. #define XR_FIELD    6
  200. #define XR_TYPEDEF  7
  201. #define XR_DEFINE   8
  202.  
  203. /* Callback handle */
  204. STRUCT AmigaGuideHost
  205.  
  206.     Hook agh_Dispatcher         /* Dispatcher */
  207.     LONGINT        agh_Reserved           /* Must be 0 */
  208.     LONGINT        agh_Flags 
  209.     LONGINT        agh_UseCnt             /* Number of open nodes */
  210.     ADDRESS         agh_SystemData         /* Reserved for system use */
  211.     ADDRESS         agh_UserData           /* Anything you want... */
  212. END STRUCT 
  213.  
  214. /* Methods */
  215. #define HM_FINDNODE 1
  216. #define HM_OPENNODE 2
  217. #define HM_CLOSENODE    3
  218. #define HM_EXPUNGE  10      /* Expunge DataBase */
  219.  
  220. /* HM_FINDNODE */
  221. STRUCT opFindHost
  222.  
  223.     LONGINT MethodID 
  224.     TagItemPtr  ofh_Attrs       /*  R: Additional attributes */
  225.     ADDRESS ofh_Node             /*  R: Name of node */
  226.     ADDRESS ofh_TOC          /*  W: Table of Contents */
  227.     ADDRESS ofh_Title            /*  W: Title to give to the node */
  228.     ADDRESS ofh_Next             /*  W: Next node to browse to */
  229.     ADDRESS ofh_Prev             /*  W: Previous node to browse to */
  230. END STRUCT 
  231.  
  232. /* HM_OPENNODE,  HM_CLOSENODE */
  233. STRUCT opNodeIO
  234.  
  235.     LONGINT MethodID 
  236.     TagItemPtr  onm_Attrs       /*  R: Additional attributes */
  237.     ADDRESS onm_Node             /*  R: Node name and arguments */
  238.     ADDRESS onm_FileName         /*  W: File name buffer */
  239.     ADDRESS onm_DocBuffer        /*  W: Node buffer */
  240.     LONGINT onm_BuffLen           /*  W: Size of buffer */
  241.     LONGINT onm_Flags             /* RW: Control flags */
  242. END STRUCT 
  243.  
  244. /* onm_Flags */
  245. #define HTNF_KEEP   (1&) /* Don't flush this node until database is
  246.                  * closed. */
  247. #define HTNF_RESERVED1  (2&) /* Reserved for system use */
  248. #define HTNF_RESERVED2  (4&) /* Reserved for system use */
  249. #define HTNF_ASCII  (8&) /* Node is straight ASCII */
  250. #define HTNF_RESERVED3  (16&) /* Reserved for system use */
  251. #define HTNF_CLEAN  (32&) /* Remove the node from the database */
  252. #define HTNF_DONE   (64) /* Done with node */
  253.  
  254. /* onm_Attrs */
  255. #define HTNA_Dummy  (TAG_USER)
  256. #define HTNA_Screen (HTNA_Dummy+1)  /* (STRUCT Screen *) Screen that window resides in */
  257. #define HTNA_Pens   (HTNA_Dummy+2)  /* Pen array (from DrawInfo) */
  258. #define HTNA_Rectangle  (HTNA_Dummy+3)  /* Window box */
  259.  
  260. #define HTNA_HelpGroup  (HTNA_Dummy+5)  /* (LONGINT) unique identifier */
  261.  
  262.  
  263. /* HM_EXPUNGE */
  264. STRUCT opExpungeNode
  265.  
  266.     LONGINT MethodID 
  267.     TagItemPtr  oen_Attrs       /*  R: Additional attributes */
  268. END STRUCT 
  269.  
  270. #endif /* LIBRARIES_AMIGAGUIDE_H */
  271.