home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 18
/
aminetcdnumber181997.iso
/
Aminet
/
misc
/
emu
/
AROSdev.lha
/
AROS
/
rom
/
intuition
/
newobjecta.c
< prev
next >
Wrap
C/C++ Source or Header
|
1997-01-27
|
3KB
|
126 lines
/*
(C) 1995-96 AROS - The Amiga Replacement OS
$Id: newobjecta.c,v 1.5 1997/01/27 00:36:41 ldp Exp $
$Log: newobjecta.c,v $
Revision 1.5 1997/01/27 00:36:41 ldp
Polish
Revision 1.4 1996/12/10 14:00:06 aros
Moved #include into first column to allow makedepend to see it.
Revision 1.3 1996/10/24 15:51:22 aros
Use the official AROS macros over the __AROS versions.
Revision 1.2 1996/10/23 16:30:09 aros
Ooops.. PublicClassList is a MinNode list :-)
Revision 1.1 1996/08/28 17:55:35 digulla
Proportional gadgets
BOOPSI
Desc:
Lang: english
*/
#define AROS_ALMOST_COMPATIBLE
#include <exec/lists.h>
#include <intuition/classes.h>
#include <proto/exec.h>
#include <proto/alib.h>
#include "intuition_intern.h"
/*****************************************************************************
NAME */
#include <intuition/classusr.h>
#include <proto/intuition.h>
AROS_LH3(APTR, NewObjectA,
/* SYNOPSIS */
AROS_LHA(struct IClass *, classPtr, A0),
AROS_LHA(UBYTE *, classID, A1),
AROS_LHA(struct TagItem *, tagList, A2),
/* LOCATION */
struct IntuitionBase *, IntuitionBase, 106, Intuition)
/* FUNCTION
Use this function to create BOOPSI objects (BOOPSI stands for
"Basic Object Oriented Programming System for Intuition).
You may specify a class either by it's name (if it's a public class)
or by a pointer to its definition (if it's a private class). If
classPtr is NULL, classID is used.
INPUTS
classPtr - Pointer to a private class (or a public class if you
happen to have a pointer to it)
classID - Name of a public class
tagList - Initial attributes. Read the documentation of the class
carefully to find out which attributes must be specified
here and which can.
RESULT
A BOOPSI object which can be manipulated with general functions and
which must be disposed with DisposeObject() later.
NOTES
This functions send OM_NEW to the dispatcher of the class.
EXAMPLE
BUGS
SEE ALSO
DisposeObject(), SetAttrs(), GetAttr(), MakeClass(),
"Basic Object-Oriented Programming System for Intuition" and
"boopsi Class Reference" Dokument.
INTERNALS
HISTORY
29-10-95 digulla automatically created from
intuition_lib.fd and clib/intuition_protos.h
*****************************************************************************/
{
AROS_LIBFUNC_INIT
AROS_LIBBASE_EXT_DECL(struct IntuitionBase *,IntuitionBase)
Object * object;
struct _Object carrier;
/* No classPtr ? */
if (!classPtr)
{
/* Search for the class */
for (classPtr=GetHead(PublicClassList);
classPtr;
classPtr=GetSucc(classPtr)
)
{
if (!strcmp (classPtr->cl_ID, classID))
break;
}
if (!classPtr)
return (NULL); /* Nothing found */
}
/* Put the classPtr in our dummy object */
carrier.o_Class = classPtr;
/* Try to create a new object */
if ((object = (Object *) DoMethod (BASEOBJECT(&carrier), OM_NEW,
tagList, NULL)))
{
OCLASS(object) = classPtr;
/* One more object */
classPtr->cl_ObjectCount ++;
}
return (object);
AROS_LIBFUNC_EXIT
} /* NewObjectA */