<HTML>
<HEAD>
<TITLE>Includes</TITLE></HEAD><BODY><H6><A href=main.html>Contents page</A></H6><P>
<H6><A href=Main.html>Index</A></H6><P>
<H1>Includes</H1>
<HR>
  //////////////////////////////////////////////////////////////////////////////<PRE>
  // DataType.hpp
  //
  // Deryk Robosson
  // March 9, 1996
  //////////////////////////////////////////////////////////////////////////////<P>

  #ifndef __DATATYPE_HPP__
  #define __DATATYPE_HPP__<P>

  //////////////////////////////////////////////////////////////////////////////
  // INCLUDES
  #include &quot;aframe:include/aframe.hpp&quot;
  #include &quot;aframe:include/string.hpp&quot;
  #include &quot;aframe:include/rect.hpp&quot;
  #include &quot;aframe:include/window.hpp&quot;
  #include &quot;aframe:include/screen.hpp&quot;
  #include &lt;exec/memory.h&gt;
  #include &lt;exec/libraries.h&gt;
  #include &lt;devices/clipboard.h&gt;
  #include &lt;graphics/gfx.h&gt;
  #include &lt;graphics/displayinfo.h&gt;
  #include &lt;intuition/icclass.h&gt;
  #include &lt;intuition/gadgetclass.h&gt;
  #include &lt;datatypes/datatypes.h&gt;
  #include &lt;datatypes/datatypesclass.h&gt;
  #include &lt;datatypes/pictureclass.h&gt;
  #include &lt;datatypes/soundclass.h&gt;
  #include &lt;datatypes/textclass.h&gt;
  #include &lt;datatypes/animationclass.h&gt;
  #include &lt;libraries/iffparse.h&gt;<P>

  #include &lt;clib/alib_protos.h&gt;
  #include &lt;clib/datatypes_protos.h&gt;
  #include &lt;clib/iffparse_protos.h&gt;
  #include &lt;clib/icon_protos.h&gt;<P>

  #include &lt;pragmas/datatypes_pragmas.h&gt;
  #include &lt;pragmas/iffparse_pragmas.h&gt;
  #include &lt;pragmas/icon_pragmas.h&gt;<P>

  #include &lt;proto/datatypes.h&gt;<P>

  ///////////////////////////////////////////////////////////////////////////////
  // Definitions
  extern struct IconBase      *IconBase;
  extern struct Library       *DataTypesBase;
  extern struct Library       *IFFParseBase;<P>

  typedef struct
  {
      AFString description;   // Description of datatype
      AFString name;          // Name of datatype
      AFString type;          // Type
      AFString group;         // Group
      AFString id;            // ID
      AFString author;        // Author       // this and below not yet implemented
      AFString annotation;    // Annotation
      AFString copyright;     // Copyright
      AFString version;       // version
  } DTINFO;<P>

  typedef struct
  {
      struct dtPrint  dtp;
      LPMsgPort       mp;
      union printerIO *pio;
  } DTPRINT;<P>

  typedef struct
  {
      Object              *o;         // keep a pointer to the object
      AFWindow            *dtWindow;  // keep a pointer to the window of the object
      struct DataType     *dtn;
      struct DTSpecialInfo *dtsi;
      struct FrameInfo    fri;
      struct dtFrameBox   dtf;
      struct dtWrite      dtw;
      struct dtDraw       dtDraw;
      struct dtGeneral    dtg;
      struct dtGoto       dtGoto;
      struct dtSelect     dts;
      struct dtTrigger    dtt;
      struct DTMethod     dtm;
      struct gpLayout     gpl;
      struct GadgetInfo   ginfo;
      AFRect              rect;
      DTPRINT             dtPrint;
      DTINFO              dtInfo;
      BOOL                dtAdded;  // keep track off object addition &amp; removal
  } GD;<P>

  //////////////////////////////////////////////////////////////////////////////
  // DataType Class<P>

  class AFDataType : public AFObject
  {
  public:
      AFDataType();
      ~AFDataType();<P>

      virtual void DestroyObject();
      virtual char *ObjectType() { return &quot;DataType&quot;; };<P>

      BOOL IsDataType(char *file);
      BOOL DTInfo();
      BOOL DTInfo(char *file);
      BOOL SaveObject(ULONG stype, char *file_name, ULONG mode);
      BOOL PrintObject(AFWindow *window);
      BOOL AbortPrint();
      BOOL PrintComplete();
      BOOL LoadClipBoard(LONG unit);
      ULONG InterrogateClipBoard(LONG unit);
      ULONG AddObject(AFWindow *window, AFRect *rect, UWORD id);
      LONG RemoveObject();
      AFRect FrameObject(AFWindow *window);
      AFRect FrameObject(AFScreen *screen);
      AFRect FrameObject();<P>

      AFDataType operator=(AFDataType dtype);<P>

      GD  m_dtGlobal;
  };<P>

  //////////////////////////////////////////////////////////////////////////////
  #endif // __DATATYPE_HPP__
<HR>
