[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

#ifndef DATATYPES_DATATYPESCLASS_H
#define DATATYPES_DATATYPESCLASS_H
/*
**  $VER: datatypesclass.h 44.1 (17.4.1999)
**  Includes Release 44.1
**
**  Interface definitions for DataType objects.
**
**  Copyright © 1992-1999 Amiga, Inc.
**      All Rights Reserved
*/

#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif

#ifndef DATATYPES_DATATYPES_H
#include <datatypes/datatypes.h>
#endif

#ifndef INTUITION_INTUITION_H
#include <intuition/intuition.h>
#endif

#ifndef DEVICES_PRINTER_H
#include <devices/printer.h>
#endif

#ifndef DEVICES_PRTBASE_H
#include <devices/prtbase.h>
#endif

/*****************************************************************************/

#define DATATYPESCLASS          "datatypesclass"

/*****************************************************************************/

#define DTA_Dummy               (TAG_USER+0x1000)

/*****************************************************************************/

/* Generic attributes */


/* (struct TextAttr *) Pointer to the default TextAttr to use for
 * the text within the object.
 */
#define DTA_TextAttr            (DTA_Dummy+10)

/* (LONG) Current top vertical unit */
#define DTA_TopVert             (DTA_Dummy+11)

/* (LONG) Number of visible vertical units */
#define DTA_VisibleVert         (DTA_Dummy+12)

/* (LONG) Total number of vertical units */
#define DTA_TotalVert           (DTA_Dummy+13)

/* (LONG) Number of pixels per vertical unit */
#define DTA_VertUnit            (DTA_Dummy+14)

/* (LONG) Current top horizontal unit */
#define DTA_TopHoriz            (DTA_Dummy+15)

/* (LONG)  Number of visible horizontal units */
#define DTA_VisibleHoriz        (DTA_Dummy+16)

/* (LONG) Total number of horizontal units */
#define DTA_TotalHoriz          (DTA_Dummy+17)

/* (LONG) Number of pixels per horizontal unit */
#define DTA_HorizUnit           (DTA_Dummy+18)

/* (UBYTE *) Name of the current element within the object. */
#define DTA_NodeName            (DTA_Dummy+19)

/* (UBYTE *) Title of the object. */
#define DTA_Title               (DTA_Dummy+20)

/* (struct DTMethod *) Pointer to a NULL terminated array of
 * supported trigger methods.
 */
#define DTA_TriggerMethods      (DTA_Dummy+21)

/* (APTR) Object specific data. */
#define DTA_Data                (DTA_Dummy+22)

/* (struct TextFont *) Default font to use for text within the
 * object.
 */
#define DTA_TextFont            (DTA_Dummy+23)

/* (ULONG *) Pointer to a ~0 terminated array of supported
 * methods.
 */
#define DTA_Methods             (DTA_Dummy+24)

/* (LONG) Printer error message.  Error numbers are defined in
 * <devices/printer.h>
 */
#define DTA_PrinterStatus       (DTA_Dummy+25)

/* PRIVATE (struct Process *) Pointer to the print process. */
#define DTA_PrinterProc         (DTA_Dummy+26)

/* PRIVATE (struct Process *) Pointer to the layout process. */
#define DTA_LayoutProc          (DTA_Dummy+27)

/* Used to turn the applications' busy pointer off and on */
#define DTA_Busy                (DTA_Dummy+28)

/* Used to indicate that new information has been loaded into
 * an object.  This is for models that cache the DTA_TopVert-
 * like tags
 */
#define DTA_Sync                (DTA_Dummy+29)

/* The base name of the class */
#define DTA_BaseName            (DTA_Dummy+30)

/* Group that the object must belong in */
#define DTA_GroupID             (DTA_Dummy+31)

/* Error level */
#define DTA_ErrorLevel          (DTA_Dummy+32)

/* datatypes.library error number */
#define DTA_ErrorNumber         (DTA_Dummy+33)

/* Argument for datatypes.library error */
#define DTA_ErrorString         (DTA_Dummy+34)

/* New for V40. (UBYTE *) specifies the name of the
 * realtime.library conductor.  Defaults to "Main".
 */
#define DTA_Conductor           (DTA_Dummy+35)

/* New for V40. (BOOL) Indicate whether a control panel should be
 * embedded within the object (in the animation datatype, for
 * example).  Defaults to TRUE.
 */
#define DTA_ControlPanel        (DTA_Dummy+36)

/* New for V40. (BOOL) Indicate whether the object should
 * immediately begin playing.  Defaults to FALSE.
 */
#define DTA_Immediate           (DTA_Dummy+37)

/* New for V40. (BOOL) Indicate that the object should repeat
 * playing.  Defaults to FALSE.
 */
#define DTA_Repeat              (DTA_Dummy+38)

/* New for V44. Address of a DTST_MEMORY source type
 * object (APTR).
 */
#define DTA_SourceAddress       (DTA_Dummy+39)

/* New for V44. Size of a DTST_MEMORY source type
 * object (ULONG).
 */
#define DTA_SourceSize          (DTA_Dummy+40)

/* Reserved tag; DO NOT USE (V44) */
#define DTA_Reserved            (DTA_Dummy+41)

/* DTObject attributes */
#define DTA_Name                (DTA_Dummy+100)
#define DTA_SourceType          (DTA_Dummy+101)
#define DTA_Handle              (DTA_Dummy+102)
#define DTA_DataType            (DTA_Dummy+103)
#define DTA_Domain              (DTA_Dummy+104)

/* DON'T USE THE FOLLOWING FOUR TAGS.  USE THE CORRESPONDING TAGS IN
 * <intuition/gadgetclass.h> */
#define DTA_Left                (DTA_Dummy+105)
#define DTA_Top                 (DTA_Dummy+106)
#define DTA_Width               (DTA_Dummy+107)
#define DTA_Height              (DTA_Dummy+108)

#define DTA_ObjName             (DTA_Dummy+109)
#define DTA_ObjAuthor           (DTA_Dummy+110)
#define DTA_ObjAnnotation       (DTA_Dummy+111)
#define DTA_ObjCopyright        (DTA_Dummy+112)
#define DTA_ObjVersion          (DTA_Dummy+113)
#define DTA_ObjectID            (DTA_Dummy+114)
#define DTA_UserData            (DTA_Dummy+115)
#define DTA_FrameInfo           (DTA_Dummy+116)

/* DON'T USE THE FOLLOWING FOUR TAGS.  USE THE CORRESPONDING TAGS IN
 * <intuition/gadgetclass.h> */
#define DTA_RelRight            (DTA_Dummy+117)
#define DTA_RelBottom           (DTA_Dummy+118)
#define DTA_RelWidth            (DTA_Dummy+119)
#define DTA_RelHeight           (DTA_Dummy+120)

#define DTA_SelectDomain        (DTA_Dummy+121)
#define DTA_TotalPVert          (DTA_Dummy+122)
#define DTA_TotalPHoriz         (DTA_Dummy+123)
#define DTA_NominalVert         (DTA_Dummy+124)
#define DTA_NominalHoriz        (DTA_Dummy+125)

/* Printing attributes */

/* (LONG) Destination X width */
#define DTA_DestCols            (DTA_Dummy+400)

/* (LONG) Destination Y height */
#define DTA_DestRows            (DTA_Dummy+401)

/* (UWORD) Option flags */
#define DTA_Special             (DTA_Dummy+402)

/* (struct RastPort *) RastPort to use when printing. (V40) */
#define DTA_RastPort            (DTA_Dummy+403)

/* (STRPTR) Pointer to base name for ARexx port (V40) */
#define DTA_ARexxPortName       (DTA_Dummy+404)


/*****************************************************************************/

#define DTST_RAM                1
#define DTST_FILE               2
#define DTST_CLIPBOARD          3
#define DTST_HOTLINK            4
#define DTST_MEMORY             5       /* New for V44 */

/*****************************************************************************/

/* Attached to the Gadget.SpecialInfo field of the gadget.  Don't access directly,
 * use the Get/Set calls instead.
 */
struct DTSpecialInfo
{
    struct SignalSemaphore       si_Lock;       /* Locked while in DoAsyncLayout() */
    ULONG                        si_Flags;

    LONG                         si_TopVert;    /* Top row (in units) */
    LONG                         si_VisVert;    /* Number of visible rows (in units) */
    LONG                         si_TotVert;    /* Total number of rows (in units) */
    LONG                         si_OTopVert;   /* Previous top (in units) */
    LONG                         si_VertUnit;   /* Number of pixels in vertical unit */

    LONG                         si_TopHoriz;   /* Top column (in units) */
    LONG                         si_VisHoriz;   /* Number of visible columns (in units) */
    LONG                         si_TotHoriz;   /* Total number of columns (in units) */
    LONG                         si_OTopHoriz;  /* Previous top (in units) */
    LONG                         si_HorizUnit;  /* Number of pixels in horizontal unit */
};


/* Object is in layout processing */
#define DTSIF_LAYOUT            (1L<<0)

/* Object needs to be layed out */
#define DTSIF_NEWSIZE           (1L<<1)

#define DTSIF_DRAGGING          (1L<<2)
#define DTSIF_DRAGSELECT        (1L<<3)

#define DTSIF_HIGHLIGHT         (1L<<4)

/* Object is being printed */
#define DTSIF_PRINTING          (1L<<5)

/* Object is in layout process */
#define DTSIF_LAYOUTPROC        (1L<<6)

/*****************************************************************************/

struct DTMethod
{
    STRPTR       dtm_Label;
    STRPTR       dtm_Command;
    ULONG        dtm_Method;
};

/*****************************************************************************/

#define DTM_Dummy               (0x600)

/* Inquire what environment an object requires */
#define DTM_FRAMEBOX            (0x601)

/* Same as GM_LAYOUT except guaranteed to be on a process already */
#define DTM_PROCLAYOUT          (0x602)

/* Layout that is occurring on a process */
#define DTM_ASYNCLAYOUT         (0x603)

/* When a RemoveDTObject() is called */
#define DTM_REMOVEDTOBJECT      (0x604)

#define DTM_SELECT              (0x605)
#define DTM_CLEARSELECTED       (0x606)

#define DTM_COPY                (0x607)
#define DTM_PRINT               (0x608)
#define DTM_ABORTPRINT          (0x609)

#define DTM_NEWMEMBER           (0x610)
#define DTM_DISPOSEMEMBER       (0x611)

#define DTM_GOTO                (0x630)
#define DTM_TRIGGER             (0x631)

#define DTM_OBTAINDRAWINFO      (0x640)
#define DTM_DRAW                (0x641)
#define DTM_RELEASEDRAWINFO     (0x642)

#define DTM_WRITE               (0x650)

/* Used to ask the object about itself */
struct FrameInfo
{
    ULONG                fri_PropertyFlags;             /* DisplayInfo (graphics/displayinfo.h) */
    Point                fri_Resolution;                /* DisplayInfo */

    UBYTE                fri_RedBits;
    UBYTE                fri_GreenBits;
    UBYTE                fri_BlueBits;

    struct
    {
        ULONG Width;
        ULONG Height;
        ULONG Depth;

    } fri_Dimensions;

    struct Screen       *fri_Screen;
    struct ColorMap     *fri_ColorMap;

    ULONG                fri_Flags;
};

#define FIF_SCALABLE    0x1
#define FIF_SCROLLABLE  0x2
#define FIF_REMAPPABLE  0x4

/* DTM_REMOVEDTOBJECT, DTM_CLEARSELECTED, DTM_COPY, DTM_ABORTPRINT */
struct dtGeneral
{
    ULONG                MethodID;
    struct GadgetInfo   *dtg_GInfo;
};

/* DTM_SELECT */
struct dtSelect
{
    ULONG                MethodID;
    struct GadgetInfo   *dts_GInfo;
    struct Rectangle     dts_Select;
};

/* DTM_FRAMEBOX */
struct dtFrameBox
{
    ULONG                MethodID;
    struct GadgetInfo   *dtf_GInfo;
    struct FrameInfo    *dtf_ContentsInfo;      /* Input */
    struct FrameInfo    *dtf_FrameInfo;         /* Output */
    ULONG                dtf_SizeFrameInfo;
    ULONG                dtf_FrameFlags;
};

#ifndef FRAMEF_SPECIFY
#define FRAMEF_SPECIFY  (1<<0)        /* Make do with the dimensions of FrameBox provided. */
#endif

/* DTM_GOTO */
struct dtGoto
{
    ULONG                MethodID;
    struct GadgetInfo   *dtg_GInfo;
    STRPTR               dtg_NodeName;          /* Node to goto */
    struct TagItem      *dtg_AttrList;          /* Additional attributes */
};

/* DTM_TRIGGER */
struct dtTrigger
{
    ULONG                MethodID;
    struct GadgetInfo   *dtt_GInfo;
    ULONG                dtt_Function;
    APTR                 dtt_Data;
};

#define STM_PAUSE               1
#define STM_PLAY                2
#define STM_CONTENTS            3
#define STM_INDEX               4
#define STM_RETRACE             5
#define STM_BROWSE_PREV         6
#define STM_BROWSE_NEXT         7

#define STM_NEXT_FIELD          8
#define STM_PREV_FIELD          9
#define STM_ACTIVATE_FIELD      10

#define STM_COMMAND             11

/* New for V40 */
#define STM_REWIND              12
#define STM_FASTFORWARD         13
#define STM_STOP                14
#define STM_RESUME              15
#define STM_LOCATE              16

/* Printer IO request */
union printerIO
{
    struct IOStdReq ios;
    struct IODRPReq iodrp;
    struct IOPrtCmdReq iopc;
};

/* DTM_PRINT */
struct dtPrint
{
    ULONG                MethodID;
    struct GadgetInfo   *dtp_GInfo;             /* Gadget information */
    union printerIO     *dtp_PIO;               /* Printer IO request */
    struct TagItem      *dtp_AttrList;          /* Additional attributes */
};

/* DTM_DRAW */
struct dtDraw
{
    ULONG                MethodID;
    struct RastPort     *dtd_RPort;
    LONG                 dtd_Left;
    LONG                 dtd_Top;
    LONG                 dtd_Width;
    LONG                 dtd_Height;
    LONG                 dtd_TopHoriz;
    LONG                 dtd_TopVert;
    struct TagItem      *dtd_AttrList;          /* Additional attributes */
};

/* DTM_WRITE */
struct dtWrite
{
    ULONG                MethodID;
    struct GadgetInfo   *dtw_GInfo;             /* Gadget information */
    BPTR                 dtw_FileHandle;        /* File handle to write to */
    ULONG                dtw_Mode;
    struct TagItem      *dtw_AttrList;          /* Additional attributes */
};

/* Save data as IFF data */
#define DTWM_IFF        0

/* Save data as local data format */
#define DTWM_RAW        1

#endif /* DATATYPES_DATATYPESCLASS_H */