/* svobjects/svobjectbase.h	    */
/* Version    : 3.7		    */
/* Date       : 28.04.1994	    */
/* Written by : Andreas R. Kleinert */

/* SVObject-Version V2.x+ */

#ifndef SVOBJECTS_SVOBJECTBASE_H
#define SVOBJECTS_SVOBJECTBASE_H

#ifndef SVOBJECTS_SVOBJECTS_H
#include <svobjects/svobjects.h>
#endif /* SVOBJECTS_SVOBJECTS_H */

#ifndef EXEC_LISTS
#include <exec/lists.h>
#endif /* EXEC_LISTS */

#ifndef EXEC_LIBRARIES
#include <exec/libraries.h>
#endif /* EXEC_LIBRARIES_H */

   /* An external support-library for the superview.library is called a
      "svobject".
      Each svobject has to contain a "SVO_ObjectNode" structure (as follows)
      in its Library-Header, which later will be READ and MODIFIED by
      the superview.library.
      Because the superview.library supports three different sorts
      of SVObjects at the time (internal, independent and external),
      there are three different types of this structure (might be more in
      the future), which can be identified via their "svo_ObjectType".
   */

   /* The Construction of a svobject :
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      The Library Base
      ----------------

      Version MUST be 2 yet, Revision can be set freely

      (see structure described below)


      The Function Table
      ------------------

      (see <pragmas/svobjects.h> or Reference_ENG.doc)

   */

/* *************************************************** */
/* *						     * */
/* * Library base Definition for svobjects	     * */
/* *						     * */
/* *************************************************** */

struct SVObjectBase
{
 struct Library 	svb_LibNode;	   /* Exec LibNode		     */
 struct SVO_ObjectNode *svb_SVObject;	   /* POINTER to initialized	     */
					   /* SVO_ObjectNode		     */
					   /* Define it somewhere else,      */
					   /* then initialize this pointer.  */

 ULONG			svo_Reserved [32]; /* Reserved for future expansion. */
					   /* Always NULL yet (Version 1).   */

 /*
   Private data of the svobject, not to be accessed
   by superview.library, may follow.
 */
};

#endif /* SVOBJECTS_SVOBJECTBASE_H */
