TABLE OF CONTENTS resource.library/--background-- resource.library/RL_CloseResource resource.library/RL_DisposeGroup resource.library/RL_DisposeObject resource.library/RL_GetObjectArray resource.library/RL_NewGroupA resource.library/RL_NewObjectA resource.library/RL_OpenResource resource.library/RL_SetResourceScreen resource.library/--background-- resource.library/--background-- NAME resource.library -- resource handling for BOOPSI classes DESCRIPTION The resource.library offers an API to handle resource objects (an object file created from ReActor or similar BOOPSI creator tools). One can create BOOPSI objects and groups of BOOPSI objects and resource tracking is completly done by resource.library. A resource object ist an AmigaDOS hunk object file that contains data structures with all necessary informations for creating BOOPSI objects. Special class informations allows to handle intuition BOOPSI objects. Strings are automatically localized if needed. The resource objects contains references to labels (for the locale string IDs) and strings (for the default strings) which has to be linked with symbol definitions from the application (a new catcomp version is available to create assembler source files for those definitions). The default label for the resource object is _RCTResource (defined by ReActor). Use a statement like extern char RCTResource[]; to access the resource object. The variable RCTResource has to be used as the first argument to RL_OpenResource. resource.library/RL_CloseResource resource.library/RL_CloseResource NAME RL_CloseResource - close and free a resource object (V44) SYNOPSIS RL_CloseResource(resource) VOID RL_CloseResource(RESOURCEFILE); FUNCTION This routine closes a resource object that was previously opened with RL_OpenResource. It frees all objects and object groups. INPUTS resource -- a pointer to a resource. A value of NULL is acceptable which means a no-op. RESULTS SEE ALSO resource.library/RL_OpenResource resource.library/RL_DisposeGroup resource.library/RL_DisposeGroup NAME RL_DisposeGroup - dispose a group of objects (V44) SYNOPSIS RL_DisposeGroup(resource, group) VOID RL_DisposeGroup(RESOURCEFILE, Object **); FUNCTION Disposes a group of objects that was allocated with RL_NewGroupA. Never dispose a object from the group with RL_DisposeObject, DisposeObject or DisposeDTObject. INPUTS resource -- a pointer to a resource group -- a pointer to an array of pointers to Object. A value of NULL is acceptable which means a no-op. RESULTS SEE ALSO resource.library/RL_NewGroupA resource.library/RL_DisposeObject resource.library/RL_DisposeObject NAME RL_DisposeObject - dispose an object (V44) SYNOPSIS RL_DisposeObject(resource, object) VOID RL_DisposeObject(RESOURCEFILE, Object *); FUNCTION Dispose an object that was allocated with RL_NewObjectA. INPUTS resource -- a pointer to a resource object -- a pointer to an Object. A value of NULL is acceptable which means a no-op. RESULTS SEE ALSO resource.library/RL_NewObjectA resource.library/RL_GetObjectArray resource.library/RL_GetObjectArray NAME RL_GetObjectArray - get a pointer to a group of objects (V44) SYNOPSIS group = RL_GetObjectArray(resource,object,id) Object **RL_GetObjectArray(RESOURCEFILE, Object *, RESOURCEID); FUNCTION If you allocated an Object using RL_NewObjectA a lot of additional Objects and group of Objects may be allocated automatically. This functions returns a pointer to a group of objects with a given group ID. Never release the group with RL_DisposeGroupA. The group is released automatically if the object is released INPUTS resource -- a pointer to a resource object -- a pointer to an Object id -- a numeric id of a object group RESULTS group -- a pointer to an array of pointers to Object SEE ALSO resource.library/RL_NewObjectA resource.library/RL_NewGroupA resource.library/RL_NewGroupA resource.library/RL_NewGroupA NAME RL_NewGroupA - allocate a group of objects (V44) SYNOPSIS group = RL_NewGroupA(resource,id,taglist) Object **RL_NewGroupA(RESOURCEFILE, RESOURCEID, struct TagItem *); FUNCTION The routine allocates a group of objects with a given numeric id. INPUTS resource -- a pointer to a resource id -- a numeric id taglist -- a pointer to an array of TagItem. Currently no tags are defined. RESULTS group -- a pointer to an array of pointers to Object or NULL. SEE ALSO resource.library/RL_DisposeGroup resource.library/RL_GetObjectArray resource.library/RL_NewObjectA resource.library/RL_NewObjectA NAME RL_NewObjectA - create a new object (V44) SYNOPSIS object = RL_NewObjectA(resource,id,taglist) Object *RL_NewObjectA(RESOURCEFILE, RESOURCEID, struct TagItem *);; FUNCTION The routine creates a new object with a given numeric id. INPUTS resource -- a pointer to a resource id -- a numeric id taglist -- a pointer to an array of TagItem. The tags are moved forward to the call of NewObjectA, NewDTObjectA or whatever is called to create the object RESULTS object -- a pointer to an Object or NULL. SEE ALSO intuition.library/NewObjectA datatypes.library/NewDTObjectA resource.library/RL_DisposeObject resource.library/RL_OpenResource resource.library/RL_OpenResource NAME RL_OpenResource - open a resource (V44) SYNOPSIS resource = RL_OpenResource(resobject, screen, catalog) RESOURCEFILE RL_OpenResource(APTR, struct Screen *, struct Catalog *); FUNCTION This routine opens a resource object. If you give a NULL for the parameter screen do not call RL_NewObjectA or RL_NewGroupA. You must first set a screen with RL_SetResourceScreen. INPUTS resobject -- a pointer to a resource object screen -- a pointer to a Screen. This may be NULL catalog -- a pointer to a Catalog. This may be NULL RESULTS resource -- a pointer to a resource or NULL EXAMPLE extern char RCTResource[]; struct Screen *screen; screen = LockPubScreen(NULL); RESOURCEFILE resource = RL_OpenResource(RCTResource, screen, NULL); if (resource) { /* create your objects here */ } RL_CloseResource(resource); UnlockPubScreen(NULL,screen); SEE ALSO intuition.library/LockPubScreen intuition.library/OpenScreenTagList locale.library/OpenCatalogA resource.library/RL_CloseResource resource.library/RL_SetResourceScreen resource.library/RL_SetResourceScreen resource.library/RL_SetResourceScreen NAME RL_SetResourceScreen - sets or clears the screen (V44) SYNOPSIS success = RL_SetResourceScreen(resource, screen) BOOL RL_SetResourceScreen(RESOURCEFILE, struct Screen *); FUNCTION This routine sets or clears the screen of the resource. You must clear the screen before you close or unlock it. You must set a valid screen before you call NewObjectA or NewGroupA. Setting a new screen does not mean that the allocated objects are automatically adapt to the new screen. This function only controls the internal housekeeping of the screen (and related structures). If you cannot adapt the allocated objects to a new screen (like setting an attribute with the new screen value) you must dispose and recreate them. If you set the same screen pointer as was before this function does nothing but returns TRUE. INPUTS resource -- a pointer to a resource screen -- a pointer to a Screen or NULL RESULTS success -- TRUE if the screen is successfully set or cleared. SEE ALSO resource.library/RL_OpenResource