home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 3 / AACD03.BIN / AACD / Programming / Triton / Developer / Include / clib / triton_protos.h
C/C++ Source or Header  |  1998-02-03  |  6KB  |  155 lines

  1. #ifndef CLIB_TRITON_PROTOS_H
  2. #define CLIB_TRITON_PROTOS_H
  3.  
  4. /*
  5. **    $VER: triton_protos.h 6.5 (11.7.96)
  6. **    Triton Release 2.0
  7. **
  8. **    triton.library prototypes
  9. **    triton.lib definitions
  10. */
  11.  
  12.  
  13. /********************************************************************************* Compiler specific stuff */
  14.  
  15. #ifdef _DCC
  16.  
  17. #ifndef EXEC_TYPES_H
  18. #include <exec/types.h>
  19. #endif
  20.  
  21. #ifndef LIBRARIES_TRITON_H
  22. #include <libraries/triton.h>
  23. #endif
  24.  
  25. #define REG(x) __ ## x
  26. #define ASM
  27. #define STACK  __stkargs
  28. #define REGS   __regargs
  29.  
  30. #else
  31.  
  32. #ifdef __GNUC__
  33.  
  34. #define REG(x)
  35. #define ASM
  36. #define STACK
  37. #define REGS
  38.  
  39. #else /* __SASC__ */
  40.  
  41. #define REG(x) register __ ## x
  42. #define ASM    __asm
  43. #define STACK  __stdargs
  44. #define REGS   __regargs
  45.  
  46. #endif /* __GNUC__ */
  47.  
  48. #endif /* _DCC */
  49.  
  50.  
  51. /************************************************************************************ User-level functions */
  52.  
  53. ASM extern struct TR_Project * TR_OpenProject(REG(a1) struct TR_App *app, REG(a0) struct TagItem *);
  54. ASM extern VOID                TR_CloseProject(REG(a0) struct TR_Project *);
  55.  
  56. ASM extern LONG                TR_FirstOccurance(REG(d0) UBYTE ch, REG(a0) STRPTR str);
  57. ASM extern LONG                TR_NumOccurances(REG(d0) UBYTE ch, REG(a0) STRPTR str);
  58. ASM extern STRPTR              TR_GetErrorString(REG(d0) UWORD num);
  59. ASM extern UWORD               TR_GetLastError(REG(a1) struct TR_App *app);
  60. ASM extern VOID                TR_CloseWindowSafely(REG(a0) struct Window *win);
  61.  
  62. ASM extern struct TR_Message * TR_GetMsg(REG(a1) struct TR_App *app);
  63. ASM extern VOID                TR_ReplyMsg(REG(a1) struct TR_Message *message);
  64. ASM extern ULONG               TR_Wait(REG(a1) struct TR_App *app, REG(d0) ULONG otherbits);
  65.  
  66. ASM extern ULONG               TR_SendMessage(REG(a0) struct TR_Project *project, REG(d0) ULONG objectid,
  67.                           REG(d1) ULONG messageid, REG(a1) void *messagedata);
  68. ASM extern VOID                TR_SetAttribute(REG(a0) struct TR_Project *, REG(d0) ULONG ID,
  69.                            REG(d1) ULONG attribute, REG(d2) ULONG value);
  70. ASM extern ULONG               TR_GetAttribute(REG(a0) struct TR_Project *, REG(d0) ULONG ID,
  71.                            REG(d1) ULONG attribute);
  72.  
  73. ASM extern VOID                TR_LockProject(REG(a0) struct TR_Project *project);
  74. ASM extern VOID                TR_UnlockProject(REG(a0) struct TR_Project *project);
  75.  
  76. ASM extern ULONG               TR_AutoRequest(REG(a1) struct TR_App *app,
  77.                           REG(a0) struct TR_Project *lockproject,
  78.                           REG(a2) struct TagItem *request_trwintags);
  79. ASM extern ULONG               TR_EasyRequest(REG(a1) struct TR_App *app, REG(a2) STRPTR bodymft,
  80.                           REG(a3) STRPTR gadfmt, REG(a0) struct TagItem *taglist);
  81.  
  82. ASM extern struct TR_App *     TR_CreateApp(REG(a1) struct TagItem *apptags);
  83. ASM extern VOID                TR_DeleteApp(REG(a1) struct TR_App *app);
  84.  
  85. ASM extern struct Screen *     TR_LockScreen(REG(a0) struct TR_Project *project);
  86. ASM extern VOID                TR_UnlockScreen(REG(a0) struct Screen *screen);
  87.  
  88. ASM extern struct Window *     TR_ObtainWindow(REG(a0) struct TR_Project *project);
  89. ASM extern VOID                TR_ReleaseWindow(REG(a0) struct Window *window);
  90.  
  91.  
  92. /*********************************************************************************** Class-level functions */
  93.  
  94. ASM extern BOOL                TR_AddClass(REG(a1) struct TR_App *app, REG(d0) ULONG tag,
  95.                        REG(d1) ULONG superTag, REG(a2) TR_Method defaultMethod,
  96.                        REG(d2) ULONG datasize, REG(a0) struct TagItem *tags);
  97.  
  98. ASM extern VOID                TR_DrawFrame(REG(a0) struct TR_Project *project,
  99.                         REG(a1) struct RastPort *rp, REG(d1) UWORD left,
  100.                         REG(d2) UWORD top, REG(d3) UWORD width, REG(d4) UWORD height,
  101.                         REG(d0) UWORD type, REG(d5) BOOL inverted);
  102. ASM extern ULONG               TR_FrameBorderHeight(REG(a0) struct TR_Project *project,
  103.                             REG(d0) UWORD type);
  104. ASM extern ULONG               TR_FrameBorderWidth(REG(a0) struct TR_Project *project,
  105.                            REG(d0) UWORD type);
  106.  
  107. ASM extern ULONG               TR_TextWidth(REG(a0) struct TR_Project *project,
  108.                         REG(a2) STRPTR text, REG(d0) ULONG flags);
  109. ASM extern ULONG               TR_TextHeight(REG(a0) struct TR_Project *project,
  110.                          REG(a2) STRPTR text, REG(d0) ULONG flags);
  111. ASM extern VOID                TR_PrintText(REG(a0) struct TR_Project *project,
  112.                         REG(a1) struct RastPort *rp, REG(a2) STRPTR text,
  113.                         REG(d1) ULONG x, REG(d2) ULONG y,
  114.                                             REG(d3) ULONG width, REG(d0) ULONG flags);
  115.  
  116. ASM extern ULONG               TR_GetPen(REG(a0) struct TR_Project *project,
  117.                      REG(d0) ULONG pentype, REG(d1) ULONG pendata);
  118. ASM extern ULONG               TR_DoMethod(REG(a0) struct TROD_Object *object,
  119.                        REG(d0) ULONG messageid, REG(a1) APTR data);
  120. ASM extern ULONG               TR_DoMethodClass(REG(a0) struct TROD_Object *object,
  121.                         REG(d0) ULONG messageid, REG(a1) APTR data,
  122.                         REG(a2) struct TR_Class *cl);
  123.  
  124. ASM extern VOID                TR_AreaFill(REG(a0) struct TR_Project *project, REG(a1) struct RastPort *rp,
  125.                        REG(d0) ULONG left, REG(d1) ULONG top, REG(d2) ULONG right,
  126.                        REG(d3) ULONG bottom, REG(d4) ULONG type, REG(a2) VOID *dummy);
  127.  
  128. ASM extern struct TR_Message * TR_CreateMsg(REG(a1) struct TR_App *app);
  129.  
  130.  
  131. /***************************************************************************************** Support library */
  132.  
  133. #ifndef TR_NOSUPPORT
  134.  
  135. STACK extern BOOL                 TR_OpenTriton(ULONG version, ULONG taglist,...);
  136. REGS  extern VOID                 TR_CloseTriton(VOID);
  137. STACK extern struct TR_App     *  TR_CreateAppTags(ULONG taglist,...);
  138. STACK extern struct TR_Project *  TR_OpenProjectTags(struct TR_App *app, ULONG taglist,...);
  139. STACK extern ULONG                TR_EasyRequestTags(struct TR_App *app, STRPTR bodymft, STRPTR gadfmt,
  140.                              ULONG taglist,...);
  141. STACK extern ULONG                TR_AutoRequestTags(struct TR_App *app, struct TR_Project *lockproject,
  142.                              ULONG taglist,...);
  143. STACK extern BOOL                 TR_AddClassTags(struct TR_App *app, ULONG tag, ULONG superTag,
  144.                           TR_Method defaultMethod, ULONG datasize,
  145.                           ULONG taglist,...);
  146. REGS  extern BOOL                 TRIM_trLogo_Init(VOID);
  147. REGS  extern VOID                 TRIM_trLogo_Free(VOID);
  148.  
  149. #endif /* TR_NOSUPPORT */
  150.  
  151.  
  152. /************************************************************************************************* The End */
  153.  
  154. #endif /* CLIB_TRITON_PROTOS_H */
  155.