1 #ifndef CLIB_DATATYPES_PROTOS_H
    2 #define CLIB_DATATYPES_PROTOS_H
    3 
    4 /*
    5 	datatypes.library C prototypes
    6 
    7 	Copyright © 2002 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #ifndef EXEC_TYPES_H
   11 # include <exec/types.h>
   12 #endif
   13 
   14 #ifndef EXEC_LISTS_H
   15 # include <exec/lists.h>
   16 #endif
   17 
   18 #ifndef INTUITION_INTUITION_H
   19 # include <intuition/intuition.h>
   20 #endif
   21 
   22 #ifndef INTUITION_CLASSES_H
   23 # include <intuition/classes.h>
   24 #endif
   25 
   26 #ifndef INTUITION_CLASSUSR_H
   27 # include <intuition/classusr.h>
   28 #endif
   29 
   30 #ifndef INTUITION_GADGETCLASS_H
   31 # include <intuition/gadgetclass.h>
   32 #endif
   33 
   34 #ifndef UTILITY_TAGITEM_H
   35 # include <utility/tagitem.h>
   36 #endif
   37 
   38 #ifndef DATATYPES_DATATYPESCLASS_H
   39 # include <datatypes/datatypesclass.h>
   40 #endif
   41 
   42 #ifndef DATATYPES_DATATYPES_H
   43 # include <datatypes/datatypes.h>
   44 #endif
   45 
   46 #ifndef REXX_STORAGE_H
   47 # include <rexx/storage.h>
   48 #endif
   49 
   50 
   51 #ifdef __cplusplus
   52 extern "C" {
   53 #endif /* __cplusplus */
   54 
   55 struct DataType *ObtainDataTypeA( ULONG type, APTR handle, struct TagItem *attrs );
   56 #if !defined(USE_INLINE_STDARG)
   57 struct DataType *ObtainDataType( ULONG type, APTR handle, Tag tag1, ... );
   58 #endif
   59 VOID ReleaseDataType( struct DataType *dt );
   60 Object *NewDTObjectA( APTR name, struct TagItem *attrs );
   61 #if !defined(USE_INLINE_STDARG)
   62 Object *NewDTObject( APTR name, Tag tag1, ... );
   63 #endif
   64 VOID DisposeDTObject( Object *o );
   65 ULONG SetDTAttrsA( Object *o, struct Window *win, struct Requester *req, struct TagItem *attrs );
   66 #if !defined(USE_INLINE_STDARG)
   67 ULONG SetDTAttrs( Object *o, struct Window *win, struct Requester *req, Tag tag1, ... );
   68 #endif
   69 ULONG GetDTAttrsA( Object *o, struct TagItem *attrs );
   70 #if !defined(USE_INLINE_STDARG)
   71 ULONG GetDTAttrs( Object *o, Tag tag1, ... );
   72 #endif
   73 LONG AddDTObject( struct Window *win, struct Requester *req, Object *o, LONG pos );
   74 VOID RefreshDTObjectA( Object *o, struct Window *win, struct Requester *req, struct TagItem *attrs );
   75 #if !defined(USE_INLINE_STDARG)
   76 VOID RefreshDTObjects( Object *o, struct Window *win, struct Requester *req, Tag tag1, ... );
   77 #endif
   78 #if !defined(USE_INLINE_STDARG)
   79 VOID RefreshDTObject( Object *o, struct Window *win, struct Requester *req, Tag tag1, ... );
   80 #endif
   81 ULONG DoAsyncLayout( Object *o, struct gpLayout *gpl );
   82 ULONG DoDTMethodA( Object *o, struct Window *win, struct Requester *req, Msg msg );
   83 #if !defined(USE_INLINE_STDARG)
   84 ULONG DoDTMethod( Object *o, struct Window *win, struct Requester *req, ULONG data, ... );
   85 #endif
   86 LONG RemoveDTObject( struct Window *win, Object *o );
   87 ULONG *GetDTMethods( Object *object );
   88 struct DTMethods *GetDTTriggerMethods( Object *object );
   89 ULONG PrintDTObjectA( Object *o, struct Window *w, struct Requester *r, struct dtPrint *msg );
   90 #if !defined(USE_INLINE_STDARG)
   91 ULONG PrintDTObject( Object *o, struct Window *w, struct Requester *r, ULONG data, ... );
   92 #endif
   93 APTR ObtainDTDrawInfoA( Object *o, struct TagItem *attrs );
   94 #if !defined(USE_INLINE_STDARG)
   95 APTR ObtainDTDrawInfo( Object *o, Tag tag1, ... );
   96 #endif
   97 LONG DrawDTObjectA( struct RastPort *rp, Object *o, LONG x, LONG y, LONG w, LONG h, LONG th, LONG tv, struct TagItem *attrs );
   98 #if !defined(USE_INLINE_STDARG)
   99 LONG DrawDTObject( struct RastPort *rp, Object *o, LONG x, LONG y, LONG w, LONG h, LONG th, LONG tv, Tag tag1, ... );
  100 #endif
  101 VOID ReleaseDTDrawInfo( Object *o, APTR handle );
  102 STRPTR GetDTString( ULONG id );
  103 
  104 
  105 /*
  106  * functions in V45 or higher
  107  */
  108 void             LockDataType( struct DataType * );
  109 struct ToolNode *FindToolNodeA( struct List *, struct TagItem * );
  110 #if !defined(USE_INLINE_STDARG)
  111 struct ToolNode *FindToolNode( struct List *, Tag, ... );
  112 #endif
  113 ULONG            LaunchToolA( struct Tool *, STRPTR, struct TagItem * );
  114 #if !defined(USE_INLINE_STDARG)
  115 ULONG            LaunchTool( struct Tool *, STRPTR, Tag, ... );
  116 #endif
  117 ULONG           *FindMethod( ULONG *, ULONG );
  118 struct DTMethod *FindTriggerMethod( struct DTMethod *, STRPTR, ULONG );
  119 ULONG           *CopyDTMethods( ULONG *, ULONG *, ULONG * );
  120 struct DTMethod *CopyDTTriggerMethods( struct DTMethod *, struct DTMethod *, struct DTMethod * );
  121 VOID             FreeDTMethods( APTR );
  122 ULONG            GetDTTriggerMethodDataFlags( ULONG );
  123 ULONG            SaveDTObjectA( Object *, struct Window *, struct Requester *, STRPTR, ULONG, BOOL, struct TagItem * );
  124 #if !defined(USE_INLINE_STDARG)
  125 ULONG            SaveDTObject( Object *, struct Window *, struct Requester *, STRPTR, ULONG, BOOL, Tag, ... );
  126 #endif
  127 ULONG            StartDragSelect( Object * );
  128 ULONG            DoDTDomainA( Object *, struct Window *, struct Requester *, struct RastPort *, ULONG, struct IBox *, struct TagItem *attrs );
  129 #if !defined(USE_INLINE_STDARG)
  130 ULONG            DoDTDomain( Object *, struct Window *, struct Requester *, struct RastPort *, ULONG, struct IBox *, Tag, ... );
  131 #endif
  132 
  133 #ifdef __cplusplus
  134 }
  135 #endif /* __cplusplus */
  136 
  137 
  138 #endif /* CLIB_DATATYPES_PROTOS_H */