1 #ifndef DATATYPES_DATATYPESCLASS_H
    2 #define DATATYPES_DATATYPESCLASS_H
    3 
    4 /*
    5 	datatypes object definitions (V45)
    6 
    7 	Copyright © 2002 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #ifndef UTILITY_TAGITEM_H
   11 # include <utility/tagitem.h>
   12 #endif
   13 
   14 #ifndef DATATYPES_DATATYPES_H
   15 # include <datatypes/datatypes.h>
   16 #endif
   17 
   18 #ifndef INTUITION_INTUITION_H
   19 # include <intuition/intuition.h>
   20 #endif
   21 
   22 #ifndef DEVICES_PRINTER_H
   23 # include <devices/printer.h>
   24 #endif
   25 
   26 #ifndef DEVICES_PRTBASE_H
   27 # include <devices/prtbase.h>
   28 #endif
   29 
   30 #pragma pack(2)
   31 
   32 
   33 #define DATATYPESCLASS  "datatypesclass"
   34 
   35 
   36 /* Generic attributes */
   37 
   38 #define DTA_Dummy           (TAG_USER + 0x1000)
   39 #define DTA_TextAttr        (DTA_Dummy + 10)
   40 #define DTA_TopVert         (DTA_Dummy + 11)
   41 #define DTA_VisibleVert     (DTA_Dummy + 12)
   42 #define DTA_TotalVert       (DTA_Dummy + 13)
   43 #define DTA_VertUnit        (DTA_Dummy + 14)
   44 #define DTA_TopHoriz        (DTA_Dummy + 15)
   45 #define DTA_VisibleHoriz    (DTA_Dummy + 16)
   46 #define DTA_TotalHoriz      (DTA_Dummy + 17)
   47 #define DTA_HorizUnit       (DTA_Dummy + 18)
   48 #define DTA_NodeName        (DTA_Dummy + 19)
   49 #define DTA_Title           (DTA_Dummy + 20)
   50 #define DTA_TriggerMethods  (DTA_Dummy + 21)
   51 #define DTA_Data            (DTA_Dummy + 22)
   52 #define DTA_TextFont        (DTA_Dummy + 23)
   53 #define DTA_Methods         (DTA_Dummy + 24)
   54 #define DTA_PrinterStatus   (DTA_Dummy + 25)
   55 #define DTA_PrinterProc     (DTA_Dummy + 26)
   56 #define DTA_LayoutProc      (DTA_Dummy + 27)
   57 #define DTA_Busy            (DTA_Dummy + 28)
   58 #define DTA_Sync            (DTA_Dummy + 29)
   59 #define DTA_BaseName        (DTA_Dummy + 30)
   60 #define DTA_GroupID         (DTA_Dummy + 31)
   61 #define DTA_ErrorLevel      (DTA_Dummy + 32)
   62 #define DTA_ErrorNumber     (DTA_Dummy + 33)
   63 #define DTA_ErrorString     (DTA_Dummy + 34)
   64 #define DTA_Conductor       (DTA_Dummy + 35)
   65 #define DTA_ControlPanel    (DTA_Dummy + 36)
   66 #define DTA_Immediate       (DTA_Dummy + 37)
   67 #define DTA_Repeat          (DTA_Dummy + 38)
   68 
   69 /*** V44 ***/
   70 
   71 #define DTA_SourceAddress   (DTA_Dummy + 39)
   72 #define DTA_SourceSize      (DTA_Dummy + 40)
   73 #define DTA_Reserved        (DTA_Dummy + 41)
   74 
   75 /*** V45 ***/
   76 
   77 #define DTA_Progressive     (DTA_Dummy + 60)
   78 #define DTA_CurrentLevel    (DTA_Dummy + 61)
   79 #define DTA_Class           (DTA_Dummy + 62)
   80 
   81 
   82 /* DTObject attributes */
   83 
   84 #define DTA_Name            (DTA_Dummy + 100)
   85 #define DTA_SourceType      (DTA_Dummy + 101)
   86 #define DTA_Handle          (DTA_Dummy + 102)
   87 #define DTA_DataType        (DTA_Dummy + 103)
   88 #define DTA_Domain          (DTA_Dummy + 104)
   89 
   90 /*** DO NOT USE ***/
   91 #define DTA_Left            (DTA_Dummy + 105)
   92 #define DTA_Top             (DTA_Dummy + 106)
   93 #define DTA_Width           (DTA_Dummy + 107)
   94 #define DTA_Height          (DTA_Dummy + 108)
   95 
   96 #define DTA_ObjName         (DTA_Dummy + 109)
   97 #define DTA_ObjAuthor       (DTA_Dummy + 110)
   98 #define DTA_ObjAnnotation   (DTA_Dummy + 111)
   99 #define DTA_ObjCopyright    (DTA_Dummy + 112)
  100 #define DTA_ObjVersion      (DTA_Dummy + 113)
  101 #define DTA_ObjectID        (DTA_Dummy + 114)
  102 #define DTA_UserData        (DTA_Dummy + 115)
  103 #define DTA_FrameInfo       (DTA_Dummy + 116)
  104 
  105 /*** DO NOT USE ***/
  106 #define DTA_RelRight        (DTA_Dummy + 117)
  107 #define DTA_RelBottom       (DTA_Dummy + 118)
  108 #define DTA_RelWidth        (DTA_Dummy + 119)
  109 #define DTA_RelHeight       (DTA_Dummy + 120)
  110 
  111 #define DTA_SelectDomain    (DTA_Dummy + 121)
  112 #define DTA_TotalPVert      (DTA_Dummy + 122)
  113 #define DTA_TotalPHoriz     (DTA_Dummy + 123)
  114 #define DTA_NominalVert     (DTA_Dummy + 124)
  115 #define DTA_NominalHoriz    (DTA_Dummy + 125)
  116 
  117 
  118 /* Printing attributes */
  119 
  120 #define DTA_DestCols        (DTA_Dummy + 400)
  121 #define DTA_DestRows        (DTA_Dummy + 401)
  122 #define DTA_Special         (DTA_Dummy + 402)
  123 #define DTA_RastPort        (DTA_Dummy + 403)
  124 #define DTA_ARexxPortName   (DTA_Dummy + 404)
  125 
  126 
  127 #define DTST_RAM        1
  128 #define DTST_FILE       2
  129 #define DTST_CLIPBOARD  3
  130 #define DTST_HOTLINK    4
  131 
  132 /*** V44 ***/
  133 
  134 #define DTST_MEMORY     5
  135 
  136 
  137 struct DTSpecialInfo
  138 {
  139 	struct SignalSemaphore  si_Lock;
  140 	ULONG                   si_Flags;
  141 
  142 	LONG                    si_TopVert;
  143 	LONG                    si_VisVert;
  144 	LONG                    si_TotVert;
  145 	LONG                    si_OTopVert;
  146 	LONG                    si_VertUnit;
  147 
  148 	LONG                    si_TopHoriz;
  149 	LONG                    si_VisHoriz;
  150 	LONG                    si_TotHoriz;
  151 	LONG                    si_OTopHoriz;
  152 	LONG                    si_HorizUnit;
  153 };
  154 
  155 
  156 #define DTSIF_LAYOUT      (1<<0)
  157 #define DTSIF_NEWSIZE     (1<<1)
  158 #define DTSIF_DRAGGING    (1<<2)
  159 #define DTSIF_DRAGSELECT  (1<<3)
  160 #define DTSIF_HIGHLIGHT   (1<<4)
  161 #define DTSIF_PRINTING    (1<<5)
  162 #define DTSIF_LAYOUTPROC  (1<<6)
  163 
  164 
  165 struct DTMethod
  166 {
  167 	STRPTR dtm_Label;
  168 	STRPTR dtm_Command;
  169 	ULONG  dtm_Method;
  170 };
  171 
  172 
  173 #define DTM_Dummy           (0x600)
  174 #define DTM_FRAMEBOX        (DTM_Dummy + 1)
  175 #define DTM_PROCLAYOUT      (DTM_Dummy + 2)
  176 #define DTM_ASYNCLAYOUT     (DTM_Dummy + 3)
  177 #define DTM_REMOVEDTOBJECT  (DTM_Dummy + 4)
  178 #define DTM_SELECT          (DTM_Dummy + 5)
  179 #define DTM_CLEARSELECTED   (DTM_Dummy + 6)
  180 #define DTM_COPY            (DTM_Dummy + 7)
  181 #define DTM_PRINT           (DTM_Dummy + 8)
  182 #define DTM_ABORTPRINT      (DTM_Dummy + 9)
  183 
  184 #define DTM_NEWMEMBER       (DTM_Dummy + 16)
  185 #define DTM_DISPOSEMEMBER   (DTM_Dummy + 17)
  186 
  187 #define DTM_GOTO            (DTM_Dummy + 48)
  188 #define DTM_TRIGGER         (DTM_Dummy + 49)
  189 
  190 #define DTM_OBTAINDRAWINFO  (DTM_Dummy + 64)
  191 #define DTM_DRAW            (DTM_Dummy + 65)
  192 #define DTM_RELEASEDRAWINFO (DTM_Dummy + 66)
  193 
  194 #define DTM_WRITE           (DTM_Dummy + 80)
  195 
  196 
  197 struct FrameInfo
  198 {
  199 	ULONG            fri_PropertyFlags;
  200 	Point            fri_Resolution;
  201 
  202 	UBYTE            fri_RedBits;
  203 	UBYTE            fri_GreenBits;
  204 	UBYTE            fri_BlueBits;
  205 
  206 	struct
  207 	{
  208 		ULONG Width;
  209 		ULONG Height;
  210 		ULONG Depth;
  211 	}                fri_Dimensions;
  212 
  213 	struct Screen   *fri_Screen;
  214 	struct ColorMap *fri_ColorMap;
  215 
  216 	ULONG            fri_Flags;
  217 };
  218 
  219 
  220 #define FIF_SCALABLE    0x1
  221 #define FIF_SCROLLABLE  0x2
  222 #define FIF_REMAPPABLE  0x4
  223 
  224 
  225 struct dtGeneral
  226 {
  227 	ULONG                MethodID;
  228 	struct GadgetInfo   *dtg_GInfo;
  229 };
  230 
  231 struct dtSelect
  232 {
  233 	ULONG                MethodID;
  234 	struct GadgetInfo   *dts_GInfo;
  235 	struct Rectangle     dts_Select;
  236 };
  237 
  238 struct dtFrameBox
  239 {
  240 	ULONG                MethodID;
  241 	struct GadgetInfo   *dtf_GInfo;
  242 	struct FrameInfo    *dtf_ContentsInfo;
  243 	struct FrameInfo    *dtf_FrameInfo;
  244 	ULONG                dtf_SizeFrameInfo;
  245 	ULONG                dtf_FrameFlags;
  246 };
  247 
  248 #ifndef FRAMEF_SPECIFY
  249 # define FRAMEF_SPECIFY  (1<<0)
  250 #endif
  251 
  252 struct dtGoto
  253 {
  254 	ULONG                MethodID;
  255 	struct GadgetInfo   *dtg_GInfo;
  256 	STRPTR               dtg_NodeName;
  257 	struct TagItem      *dtg_AttrList;
  258 };
  259 
  260 struct dtTrigger
  261 {
  262 	ULONG                MethodID;
  263 	struct GadgetInfo   *dtt_GInfo;
  264 	ULONG                dtt_Function;
  265 	APTR                 dtt_Data;
  266 };
  267 
  268 
  269 #define STMF_METHOD_MASK    (0x0000FFFF)
  270 #define STMF_DATA_MASK      (0x00FF0000)
  271 #define STMF_RESERVED_MASK  (0xFF000000)
  272 
  273 #define STMD_VOID           (0x00010000)
  274 #define STMD_ULONG          (0x00020000)
  275 #define STMD_STRPTR         (0x00030000)
  276 #define STMD_TAGLIST        (0x00040000)
  277 
  278 #define STM_DONE            0
  279 #define STM_END             0
  280 #define STM_PAUSE           1
  281 #define STM_PLAY            2
  282 #define STM_CONTENTS        3
  283 #define STM_INDEX           4
  284 #define STM_RETRACE         5
  285 #define STM_BROWSE_PREV     6
  286 #define STM_BROWSE_NEXT     7
  287 #define STM_NEXT_FIELD      8
  288 #define STM_PREV_FIELD      9
  289 #define STM_ACTIVATE_FIELD  10
  290 #define STM_COMMAND         11
  291 #define STM_REWIND          12
  292 #define STM_FASTFORWARD     13
  293 #define STM_STOP            14
  294 #define STM_RESUME          15
  295 #define STM_LOCATE          16
  296 
  297 /*** V50 ***/
  298 
  299 #define STM_HELP            17
  300 #define STM_SEARCH          18
  301 #define STM_SEARCH_NEXT     19
  302 #define STM_SEARCH_PREV     20
  303 
  304 /*** V45 ***/
  305 
  306 #define STM_USER            100
  307 
  308 
  309 union printerIO
  310 {
  311 	struct IOStdReq    ios;
  312 	struct IODRPReq    iodrp;
  313 	struct IOPrtCmdReq iopc;
  314 };
  315 
  316 struct dtPrint
  317 {
  318 	ULONG                MethodID;
  319 	struct GadgetInfo   *dtp_GInfo;
  320 	union printerIO     *dtp_PIO;
  321 	struct TagItem      *dtp_AttrList;
  322 };
  323 
  324 struct dtDraw
  325 {
  326 	ULONG            MethodID;
  327 	struct RastPort *dtd_RPort;
  328 	LONG             dtd_Left;
  329 	LONG             dtd_Top;
  330 	LONG             dtd_Width;
  331 	LONG             dtd_Height;
  332 	LONG             dtd_TopHoriz;
  333 	LONG             dtd_TopVert;
  334 	struct TagItem  *dtd_AttrList;
  335 };
  336 
  337 struct dtReleaseDrawInfo
  338 {
  339 	ULONG MethodID;
  340 	APTR  dtr_Handle;
  341 };
  342 
  343 struct dtWrite
  344 {
  345 	ULONG                MethodID;
  346 	struct GadgetInfo   *dtw_GInfo;
  347 	BPTR                 dtw_FileHandle;
  348 	ULONG                dtw_Mode;
  349 	struct TagItem      *dtw_AttrList;
  350 };
  351 
  352 
  353 #define DTWM_IFF  0
  354 #define DTWM_RAW  1
  355 
  356 
  357 #pragma pack()
  358 
  359 #endif /* DATATYPES_DATATYPESCLASS_H */