home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 8
/
FreshFishVol8-CD1.bin
/
gnu
/
os-include
/
libraries
/
amigaguide.h
next >
Wrap
C/C++ Source or Header
|
1993-10-15
|
7KB
|
237 lines
#ifndef LIBRARIES_AMIGAGUIDE_H
#define LIBRARIES_AMIGAGUIDE_H
/*
** $VER: amigaguide.h 39.4 (22.3.93)
** Includes Release 40.15
**
** C prototypes. For use with 32 bit integers only.
**
** (C) Copyright 1990-1993 Commodore-Amiga, Inc.
** All Rights Reserved
*/
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif /* EXEC_TYPES_H */
#ifndef EXEC_LISTS_H
#include <exec/lists.h>
#endif /* EXEC_LISTS_H */
#ifndef EXEC_NODES_H
#include <exec/nodes.h>
#endif /* EXEC_NODES_H */
#ifndef EXEC_SEMAPHORES_H
#include <exec/semaphores.h>
#endif
#ifndef INTUITION_INTUITION_H
#include <intuition/intuition.h>
#endif
#ifndef INTUITION_SCREENS_H
#include <intuition/screens.h>
#endif
#ifndef INTUITION_CLASSUSR_H
#include <intuition/classusr.h>
#endif
#ifndef DO_DOS_H
#include <dos/dos.h>
#endif
#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif
#ifndef APSH_TOOL_ID
#define APSH_TOOL_ID 11000L
#define StartupMsgID (APSH_TOOL_ID+1L) /* Startup message */
#define LoginToolID (APSH_TOOL_ID+2L) /* Login a tool SIPC port */
#define LogoutToolID (APSH_TOOL_ID+3L) /* Logout a tool SIPC port */
#define ShutdownMsgID (APSH_TOOL_ID+4L) /* Shutdown message */
#define ActivateToolID (APSH_TOOL_ID+5L) /* Activate tool */
#define DeactivateToolID (APSH_TOOL_ID+6L) /* Deactivate tool */
#define ActiveToolID (APSH_TOOL_ID+7L) /* Tool Active */
#define InactiveToolID (APSH_TOOL_ID+8L) /* Tool Inactive */
#define ToolStatusID (APSH_TOOL_ID+9L) /* Status message */
#define ToolCmdID (APSH_TOOL_ID+10L) /* Tool command message */
#define ToolCmdReplyID (APSH_TOOL_ID+11L) /* Reply to tool command */
#define ShutdownToolID (APSH_TOOL_ID+12L) /* Shutdown tool */
#endif
/* Attributes accepted by GetAmigaGuideAttr() */
#define AGA_Dummy (TAG_USER)
#define AGA_Path (AGA_Dummy+1)
#define AGA_XRefList (AGA_Dummy+2)
#define AGA_Activate (AGA_Dummy+3)
#define AGA_Context (AGA_Dummy+4)
#define AGA_HelpGroup (AGA_Dummy+5)
/* (ULONG) Unique identifier */
#define AGA_Reserved1 (AGA_Dummy+6)
#define AGA_Reserved2 (AGA_Dummy+7)
#define AGA_Reserved3 (AGA_Dummy+8)
#define AGA_ARexxPort (AGA_Dummy+9)
/* (struct MsgPort *) Pointer to the ARexx message port (V40) */
#define AGA_ARexxPortName (AGA_Dummy+10)
/* (STRPTR) Used to specify the ARexx port name (V40) (not copied) */
typedef void *AMIGAGUIDECONTEXT;
struct AmigaGuideMsg
{
struct Message agm_Msg; /* Embedded Exec message structure */
ULONG agm_Type; /* Type of message */
APTR agm_Data; /* Pointer to message data */
ULONG agm_DSize; /* Size of message data */
ULONG agm_DType; /* Type of message data */
ULONG agm_Pri_Ret; /* Primary return value */
ULONG agm_Sec_Ret; /* Secondary return value */
APTR agm_System1;
APTR agm_System2;
};
/* Allocation description structure */
struct NewAmigaGuide
{
BPTR nag_Lock; /* Lock on the document directory */
STRPTR nag_Name; /* Name of document file */
struct Screen *nag_Screen; /* Screen to place windows within */
STRPTR nag_PubScreen; /* Public screen name to open on */
STRPTR nag_HostPort; /* Application's ARexx port name */
STRPTR nag_ClientPort; /* Name to assign to the clients ARexx port */
STRPTR nag_BaseName; /* Base name of the application */
ULONG nag_Flags; /* Flags */
STRPTR *nag_Context; /* NULL terminated context table */
STRPTR nag_Node; /* Node to align on first (defaults to Main) */
LONG nag_Line; /* Line to align on */
struct TagItem *nag_Extens; /* Tag array extension */
VOID *nag_Client; /* Private! MUST be NULL */
};
/* public Client flags */
#define HTF_LOAD_INDEX (1L<<0) /* Force load the index at init time */
#define HTF_LOAD_ALL (1L<<1) /* Force load the entire database at init */
#define HTF_CACHE_NODE (1L<<2) /* Cache each node as visited */
#define HTF_CACHE_DB (1L<<3) /* Keep the buffers around until expunge */
#define HTF_UNIQUE (1L<<15) /* Unique ARexx port name */
#define HTF_NOACTIVATE (1L<<16) /* Don't activate window */
#define HTFC_SYSGADS 0x80000000
/* Callback function ID's */
#define HTH_OPEN 0
#define HTH_CLOSE 1
#define HTERR_NOT_ENOUGH_MEMORY 100L
#define HTERR_CANT_OPEN_DATABASE 101L
#define HTERR_CANT_FIND_NODE 102L
#define HTERR_CANT_OPEN_NODE 103L
#define HTERR_CANT_OPEN_WINDOW 104L
#define HTERR_INVALID_COMMAND 105L
#define HTERR_CANT_COMPLETE 106L
#define HTERR_PORT_CLOSED 107L
#define HTERR_CANT_CREATE_PORT 108L
#define HTERR_KEYWORD_NOT_FOUND 113L
typedef struct AmigaGuideHost *AMIGAGUIDEHOST;
/* Cross reference node */
struct XRef
{
struct Node xr_Node; /* Embedded node */
UWORD xr_Pad; /* Padding */
struct DocFile *xr_DF; /* Document defined in */
STRPTR xr_File; /* Name of document file */
STRPTR xr_Name; /* Name of item */
LONG xr_Line; /* Line defined at */
};
#define XRSIZE (sizeof (struct XRef))
/* Types of cross reference nodes */
#define XR_GENERIC 0
#define XR_FUNCTION 1
#define XR_COMMAND 2
#define XR_INCLUDE 3
#define XR_MACRO 4
#define XR_STRUCT 5
#define XR_FIELD 6
#define XR_TYPEDEF 7
#define XR_DEFINE 8
/* Callback handle */
struct AmigaGuideHost
{
struct Hook agh_Dispatcher; /* Dispatcher */
ULONG agh_Reserved; /* Must be 0 */
ULONG agh_Flags;
ULONG agh_UseCnt; /* Number of open nodes */
APTR agh_SystemData; /* Reserved for system use */
APTR agh_UserData; /* Anything you want... */
};
/* Methods */
#define HM_FINDNODE 1
#define HM_OPENNODE 2
#define HM_CLOSENODE 3
#define HM_EXPUNGE 10 /* Expunge DataBase */
/* HM_FINDNODE */
struct opFindHost
{
ULONG MethodID;
struct TagItem *ofh_Attrs; /* R: Additional attributes */
STRPTR ofh_Node; /* R: Name of node */
STRPTR ofh_TOC; /* W: Table of Contents */
STRPTR ofh_Title; /* W: Title to give to the node */
STRPTR ofh_Next; /* W: Next node to browse to */
STRPTR ofh_Prev; /* W: Previous node to browse to */
};
/* HM_OPENNODE, HM_CLOSENODE */
struct opNodeIO
{
ULONG MethodID;
struct TagItem *onm_Attrs; /* R: Additional attributes */
STRPTR onm_Node; /* R: Node name and arguments */
STRPTR onm_FileName; /* W: File name buffer */
STRPTR onm_DocBuffer; /* W: Node buffer */
ULONG onm_BuffLen; /* W: Size of buffer */
ULONG onm_Flags; /* RW: Control flags */
};
/* onm_Flags */
#define HTNF_KEEP (1L<<0) /* Don't flush this node until database is
* closed. */
#define HTNF_RESERVED1 (1L<<1) /* Reserved for system use */
#define HTNF_RESERVED2 (1L<<2) /* Reserved for system use */
#define HTNF_ASCII (1L<<3) /* Node is straight ASCII */
#define HTNF_RESERVED3 (1L<<4) /* Reserved for system use */
#define HTNF_CLEAN (1L<<5) /* Remove the node from the database */
#define HTNF_DONE (1L<<6) /* Done with node */
/* onm_Attrs */
#define HTNA_Dummy (TAG_USER)
#define HTNA_Screen (HTNA_Dummy+1) /* (struct Screen *) Screen that window resides in */
#define HTNA_Pens (HTNA_Dummy+2) /* Pen array (from DrawInfo) */
#define HTNA_Rectangle (HTNA_Dummy+3) /* Window box */
#define HTNA_HelpGroup (HTNA_Dummy+5) /* (ULONG) unique identifier */
/* HM_EXPUNGE */
struct opExpungeNode
{
ULONG MethodID;
struct TagItem *oen_Attrs; /* R: Additional attributes */
};
#endif /* LIBRARIES_AMIGAGUIDE_H */