home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / DC-POS24.LZX / pOS / Guide.lzx / Guide / Device / IEvent.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-11  |  12.1 KB  |  302 lines

  1. @DATABASE "Device/IEvent.h"
  2. @MASTER   "Work2:AD/IInc/Device/IEvent.h"
  3. @REMARK   This file was created by ADtoHT 2.0 on 11-Mär-97  13:33:43
  4. @REMARK   Do not edit
  5. @REMARK   ADtoHT is © 1993-1995 Christian Stieber
  6.  
  7. @NODE MAIN "Device/IEvent.h"
  8. @TOC "__pOS_Dev.guide/MAIN"
  9.  
  10. @{"Device/IEvent.h" LINK File}
  11.  
  12.  
  13. @{b}Structures@{ub}
  14.  
  15. @{"pOS_IEDragDrop" LINK "Device/IEvent.h/File" 210}       @{"pOS_IENewTablet" LINK "Device/IEvent.h/File" 194}  @{"pOS_IEPointerPixel" LINK "Device/IEvent.h/File" 174}
  16. @{"pOS_IEPointerTablet" LINK "Device/IEvent.h/File" 183}  @{"pOS_InputEvent" LINK "Device/IEvent.h/File" 232}   
  17.  
  18.  
  19. @{b}#defines@{ub}
  20.  
  21. @{"ie_DeadKey" LINK "Device/IEvent.h/File" 263}        @{"ie_EventAddress" LINK "Device/IEvent.h/File" 268}   @{"ie_Prev1DownCode" LINK "Device/IEvent.h/File" 269}  @{"ie_Prev1DownQual" LINK "Device/IEvent.h/File" 270}
  22. @{"ie_Prev2DownCode" LINK "Device/IEvent.h/File" 271}  @{"ie_Prev2DownQual" LINK "Device/IEvent.h/File" 272}  @{"ie_X" LINK "Device/IEvent.h/File" 266}              @{"ie_Y" LINK "Device/IEvent.h/File" 267}
  23.  
  24. @ENDNODE
  25. @NODE File "Device/IEvent.h"
  26. #ifndef __INC_POS_DEVICE_IEVENT_H
  27. #define __INC_POS_DEVICE_IEVENT_H
  28. /*******************************************************************
  29.  Includes Release 24
  30.  (C) Copyright 1995-1997 proDAD
  31.      All Rights Reserved
  32.  
  33.  $AUT Holger Burkarth
  34.  $DAT >>IEvent.h<<   22 Jan 1997    14:34:02 - (C) ProDAD
  35. *******************************************************************/
  36. #ifndef __INC_POS_PEXEC_LIST_H
  37. #include <@{"pExec/List.h" LINK "pExec/List.h/File"}>
  38. #endif
  39. #ifndef __INC_POS_DEVICE_TIMER_H
  40. #include <@{"Device/Timer.h" LINK "Device/Timer.h/File"}>
  41. #endif
  42. #ifndef __INC_POS_PLAYER_RECT_H
  43. #include <@{"pLayer/Rect.h" LINK "pLayer/Rect.h/File"}>
  44. #endif
  45.  
  46.  
  47.  
  48. enum pOS_InputEventClass
  49. {
  50.   IECLASS_NULL          =0x00, /* A NOP input event */
  51.   IECLASS_RAWKEY        =0x01, /* A raw keycode from the keyboard device */
  52.   IECLASS_RAWMOUSE      =0x02, /* The raw mouse report from the game port device */
  53.   IECLASS_EVENT         =0x03, /* A private console event */
  54.   IECLASS_POINTERPOS    =0x04, /* A Pointer Position report */
  55.   IECLASS_TIMER         =0x06, /* A timer event */
  56.   IECLASS_GADGETDOWN    =0x07, /* select button pressed down over a Gadget (address in @{"ie_EventAddress" LINK File 268}) */
  57.   IECLASS_GADGETUP      =0x08, /* select button released over the same Gadget (address in @{"ie_EventAddress" LINK File 268}) */
  58.   IECLASS_GADGETABORT   =0x09, /* (address in @{"ie_EventAddress" LINK File 268}) */
  59.   IECLASS_MENULIST      =0x0A, /* this is a Menu Number transmission (Menu number is in ie_Code) */
  60.   IECLASS_CLOSEWINDOW   =0x0B, /* User has selected the active Window's Close Gadget */
  61.   IECLASS_SIZEWINDOW    =0x0C, /* this Window has a new size */
  62.   IECLASS_REFRESHWINDOW =0x0D, /* the Window pointed to by @{"ie_EventAddress" LINK File 268} needs to be refreshed */
  63.   IECLASS_UPDATEGADGET  =0x0E, /* Gadget wurde verändert (prop) (address in @{"ie_EventAddress" LINK File 268}) */
  64.   IECLASS_DISKREMOVED   =0x0F, /* the disk has been removed */
  65.   IECLASS_DISKINSERTED  =0x10, /* the disk has been inserted */
  66.   IECLASS_ACTIVEWINDOW  =0x11, /* the window is about to be been made active */
  67.   IECLASS_INACTIVEWINDOW=0x12, /* the window is about to be made inactive */
  68.  
  69.   IECLASS_HELP          =0x14, /* Help */
  70.   IECLASS_CHANGEWINDOW  =0x15, /* the Window has been modified with move, size, zoom, or change */
  71.   IECLASS_DRAGKEY       =0x16, /* */
  72.   IECLASS_DROP          =0x17, /* */
  73.  
  74.   IECLASS_MAX           =0x17, /* the last class */
  75. };
  76.  
  77.  
  78. enum pOS_InputEventSubClass
  79. {
  80.   IESUBCLASS_COMPATIBLE=0x00, /* IECLASS_NEWPOINTERPOS */
  81.   IESUBCLASS_PIXEL     =0x01, /* @{"ie_EventAddress" LINK File 268} points to struct IEPointerPixel */
  82.   IESUBCLASS_TABLET    =0x02, /* @{"ie_EventAddress" LINK File 268} points to struct IEPointerTablet */
  83.   IESUBCLASS_NEWTABLET =0x03, /* @{"ie_EventAddress" LINK File 268} points to struct IENewTablet */
  84. };
  85.  
  86.  
  87. enum pOS_InputEventCode
  88. {
  89. /*  IECLASS_RAWKEY */
  90.   IECODE_UP_PREFIX         =0x80,
  91.   IECODE_KEY_CODE_FIRST    =0x00,
  92.   IECODE_KEY_CODE_LAST     =0x77,
  93.   IECODE_COMM_CODE_FIRST   =0x78,
  94.   IECODE_COMM_CODE_LAST    =0x7F,
  95.  
  96. /*  IECLASS_ANSI */
  97.   IECODE_C0_FIRST          =0x00,
  98.   IECODE_C0_LAST           =0x1F,
  99.   IECODE_ASCII_FIRST       =0x20,
  100.   IECODE_ASCII_LAST        =0x7E,
  101.   IECODE_ASCII_DEL         =0x7F,
  102.   IECODE_C1_FIRST          =0x80,
  103.   IECODE_C1_LAST           =0x9F,
  104.   IECODE_LATIN1_FIRST      =0xA0,
  105.   IECODE_LATIN1_LAST       =0xFF,
  106.  
  107. /*  IECLASS_RAWMOUSE */
  108.   IECODE_LBUTTON           =0x68,  /* also uses IECODE_UP_PREFIX */
  109.   IECODE_RBUTTON           =0x69,
  110.   IECODE_MBUTTON           =0x6A,
  111.   IECODE_NOBUTTON          =0xFF,
  112.  
  113. /* IECLASS_SIZEWINDOW, IECLASS_CHANGEWINDOW */
  114.   IECODE_ADDWIDTH          =0x0001,
  115.   IECODE_SUBWIDTH          =0x0002,
  116.   IECODE_ADDHEIGHT         =0x0004,
  117.   IECODE_SUBHEIGHT         =0x0008,
  118.   IECODE_ADDLEFT           =0x0010,
  119.   IECODE_SUBLEFT           =0x0020,
  120.   IECODE_ADDTOP            =0x0040,
  121.   IECODE_SUBTOP            =0x0080,
  122.  
  123. /* IECODE_DROP */
  124.   IECODE_DROP_FIRST        =0x00, /* Message für Drop erzeugen */
  125.   IECODE_DROP_WORK         =0x01, /* Drop-Message bearbeiten */
  126.   IECODE_DROP_ABORT        =0x02, /* Drop-Message wurde nicht bearbeitet */
  127.   IECODE_DROP_REPLYWORK    =0x03, /* Message nach @{"pOS_ReplyMsg" LINK "pExecD/pOS_ReplyMsg"} bearbeiten */
  128. };
  129.  
  130.  
  131. enum pOS_InputEventGdUpCode /** GadgetUpdate, GadgetUp, GadgetDown, GadgetAbort */
  132. {
  133.   /* wird gefilter =>             +     */
  134.  
  135.   IEGUCODE_Mask=0xff,
  136.   IEGUCODE_Unknown =0,          /*   0 Unbekannt, kann nicht eingeteilt werden */
  137.   IEGUCODE_Start,               /*   1 Prozeß, Vorgang, Ablauf,... wird gestartet */
  138.   IEGUCODE_Stop,                /*     Prozeß, Vorgang, Ablauf,... wurde gestoppt */
  139.   IEGUCODE_End,                 /*     Prozeß, Vorgang, Ablauf,... wurde beendet */
  140.   IEGUCODE_Select,              /*     Der Selektzustand hat sich verändert */
  141.   IEGUCODE_Scroll,              /*+  5 Grafikinhalt wurde verschoben */
  142.   IEGUCODE_Ok,                  /*     Bestätigung */
  143.   IEGUCODE_Cancel,              /*     Widerruft, Abbruch */
  144.   IEGUCODE_Error,               /*     Fehler  */
  145.   IEGUCODE_Notify,              /*     Auslöser ist ICLMTH_Notify */
  146.   IEGUCODE_UpSelect,            /*+ 10 Der Selektzustand hat sich verändert (Update auf IEGUCODE_Select) */
  147.   IEGUCODE_Alternate,           /*     Allegmeine Veränderung, (Eingabe in StrGad) */
  148.   IEGUCODE_Drop,                /*     Eingabe erfolgte per Drag&Drop */
  149.   IEGUCODE_Active,              /*     Gadget wurde aktiviert (Fokus auf Gadget) */
  150.   IEGUCODE_Inactive,            /*     Gadget gibt Fokus ab */
  151.   IEGUCODE_Drag,                /*  15  */
  152.   IEGUCODE_MAX,
  153. };
  154.  
  155.  
  156.  
  157.  
  158.  
  159. enum pOS_InputEventQualifier
  160. {
  161.   IEQUALIFIER_LSHIFT            =0x0001,
  162.   IEQUALIFIER_RSHIFT            =0x0002,
  163.   IEQUALIFIER_CAPSLOCK          =0x0004,
  164.   IEQUALIFIER_CONTROL           =0x0008,
  165.   IEQUALIFIER_LALT              =0x0010,
  166.   IEQUALIFIER_RALT              =0x0020,
  167.   IEQUALIFIER_LCOMMAND          =0x0040,
  168.   IEQUALIFIER_RCOMMAND          =0x0080,
  169.   IEQUALIFIER_NUMERICPAD        =0x0100,
  170.   IEQUALIFIER_REPEAT            =0x0200,
  171.   IEQUALIFIER_INTERRUPT         =0x0400,
  172.   IEQUALIFIER_MULTIBROADCAST    =0x0800,
  173.   IEQUALIFIER_MIDBUTTON         =0x1000,
  174.   IEQUALIFIER_RBUTTON           =0x2000,
  175.   IEQUALIFIER_LEFTBUTTON        =0x4000,
  176.   IEQUALIFIER_RELATIVEMOUSE     =0x8000,
  177.  
  178.   IEQUALIFIERB_LSHIFT           =0,
  179.   IEQUALIFIERB_RSHIFT           =1,
  180.   IEQUALIFIERB_CAPSLOCK         =2,
  181.   IEQUALIFIERB_CONTROL          =3,
  182.   IEQUALIFIERB_LALT             =4,
  183.   IEQUALIFIERB_RALT             =5,
  184.   IEQUALIFIERB_LCOMMAND         =6,
  185.   IEQUALIFIERB_RCOMMAND         =7,
  186.   IEQUALIFIERB_NUMERICPAD       =8,
  187.   IEQUALIFIERB_REPEAT           =9,
  188.   IEQUALIFIERB_INTERRUPT        =10,
  189.   IEQUALIFIERB_MULTIBROADCAST   =11,
  190.   IEQUALIFIERB_MIDBUTTON        =12,
  191.   IEQUALIFIERB_RBUTTON          =13,
  192.   IEQUALIFIERB_LEFTBUTTON       =14,
  193.   IEQUALIFIERB_RELATIVEMOUSE    =15,
  194. };
  195.  
  196.  
  197. /*----------------------------------
  198. -----------------------------------*/
  199. struct pOS_IEPointerPixel
  200. {
  201.   @{"struct pOS_Screen" LINK "pScreen/Screen.h/File" 22} *iepp_Screen;
  202.   @{"struct pOS_Point" LINK "pLayer/Rect.h/File" 26}   iepp_Position;
  203. };
  204.  
  205.  
  206. /*----------------------------------
  207. -----------------------------------*/
  208. struct pOS_IEPointerTablet
  209. {
  210.   @{"struct pOS_Point" LINK "pLayer/Rect.h/File" 26} iept_Range;
  211.   @{"struct pOS_Point" LINK "pLayer/Rect.h/File" 26} iept_Value;
  212.   @{"SWORD" LINK "pExec/Types.h/File" 92}            iept_Pressure; /* -128 => 127 (unused, set to 0) */
  213. };
  214.  
  215.  
  216.  
  217. /*----------------------------------
  218. -----------------------------------*/
  219. struct pOS_IENewTablet
  220. {
  221.   @{"struct pOS_Callback" LINK "pExec/CallBack.h/File" 17} *ient_CallBack;
  222.   @{"UWORD" LINK "pExec/Types.h/File" 93} ient_ScaledX, ient_ScaledY;
  223.   @{"UWORD" LINK "pExec/Types.h/File" 93} ient_ScaledXFraction, ient_ScaledYFraction;
  224.   @{"ULONG" LINK "pExec/Types.h/File" 91} ient_TabletX, ient_TabletY;
  225.   @{"ULONG" LINK "pExec/Types.h/File" 91} ient_RangeX, ient_RangeY;
  226.   const @{"struct pOS_TagItem" LINK "pUtil/TagItem.h/File" 19} *ient_TagList;
  227. };
  228.  
  229.  
  230.  
  231. /*----------------------------------
  232.   ie_Class==IECLASS_DROP
  233.   (@{"struct pOS_IEDragDrop" LINK "Device/IEvent.h/File" 210}*)ie->@{"ie_EventAddress" LINK File 268}
  234. -----------------------------------*/
  235. struct pOS_IEDragDrop
  236. {
  237.   struct
  238.     @{"struct pOS_Screen" LINK "pScreen/Screen.h/File" 22}  *iedd_Screen;
  239.     @{"struct pOS_Window" LINK "pScreen/Window.h/File" 18}  *iedd_Window;
  240.     @{"struct pOS_Gadget" LINK "pGadget/Gadget.h/File" 18}  *iedd_Gadget;
  241.     @{"struct pOS_Point" LINK "pLayer/Rect.h/File" 26}    iedd_Mouse;
  242.     @{"struct pOS_TimeVal" LINK "Device/Timer.h/File" 36}  iedd_Time;
  243.  
  244.     @{"UBYTE" LINK "pExec/Types.h/File" 95} iedd_Reserved1[8];
  245.  
  246.   } iedd_Src, iedd_Dst;  /* Source, Destination */
  247.  
  248.   const struct pOS_DropAttribute *iedd_DropAtt;
  249.         @{"struct pOS_DataType" LINK "pDtType/DtType.h/File" 18}      *iedd_Object;
  250.         @{"struct pOS_Point" LINK "pLayer/Rect.h/File" 26}          iedd_Offset;
  251.  
  252. };
  253.  
  254.  
  255. /*----------------------------------
  256. -----------------------------------*/
  257. struct pOS_InputEvent
  258. {
  259.   struct pOS_InputEvent *ie_NextEvent;   /* the chronologically next event */
  260.   @{"UBYTE" LINK "pExec/Types.h/File" 95}                  ie_Class;       /* the input event class */
  261.   @{"UBYTE" LINK "pExec/Types.h/File" 95}                  ie_SubClass;    /* optional subclass of the class */
  262.   @{"ULONG" LINK "pExec/Types.h/File" 91}                  ie_Code;        /* the input event code */
  263.   @{"UWORD" LINK "pExec/Types.h/File" 93}                  ie_Qualifier;   /* qualifiers in effect for the event*/
  264.   @{"UBYTE" LINK "pExec/Types.h/File" 95}                  ie_Reserved1[8];
  265.   union
  266.     @{"UBYTE" LINK "pExec/Types.h/File" 95}   ie_Reserved2[8];
  267.     struct
  268.       @{"UWORD" LINK "pExec/Types.h/File" 93} ie_x;               /* the pointer position for the event*/
  269.       @{"UWORD" LINK "pExec/Types.h/File" 93} ie_y;
  270.     } ie_xy;
  271.     @{"APTR" LINK "pExec/Types.h/File" 87}    ie_addr;            /* the event address */
  272.     @{"ULONG" LINK "pExec/Types.h/File" 91}   ie_deadKey;         /* DeadKey pack */
  273.     struct
  274.       @{"UBYTE" LINK "pExec/Types.h/File" 95} ie_prev1DownCode;   /* previous down keys for dead */
  275.       @{"UBYTE" LINK "pExec/Types.h/File" 95} ie_prev1DownQual;   /*   key translation: the ie_Code */
  276.       @{"UBYTE" LINK "pExec/Types.h/File" 95} ie_prev2DownCode;   /*   & low byte of ie_Qualifier for */
  277.       @{"UBYTE" LINK "pExec/Types.h/File" 95} ie_prev2DownQual;   /*   last & second last down keys */
  278.     } ie_dead;
  279.   } ie_position;
  280.  
  281.   @{"struct pOS_TimeVal" LINK "Device/Timer.h/File" 36} ie_TimeStamp;  /* the system tick at the event */
  282.   @{"ULONG" LINK "pExec/Types.h/File" 91}              ie_Data;
  283.  
  284.   @{"UBYTE" LINK "pExec/Types.h/File" 95} ie_Reserved3[8];
  285. };
  286.  
  287.  
  288. #define ie_DeadKey              ie_position.ie_deadKey
  289.  
  290. #ifndef ie_X
  291.  #define ie_X                    ie_position.ie_xy.ie_x
  292.  #define ie_Y                    ie_position.ie_xy.ie_y
  293.  #define ie_EventAddress         ie_position.ie_addr
  294.  #define ie_Prev1DownCode        ie_position.ie_dead.ie_prev1DownCode
  295.  #define ie_Prev1DownQual        ie_position.ie_dead.ie_prev1DownQual
  296.  #define ie_Prev2DownCode        ie_position.ie_dead.ie_prev2DownCode
  297.  #define ie_Prev2DownQual        ie_position.ie_dead.ie_prev2DownQual
  298. #endif
  299.  
  300. #endif
  301. @ENDNODE
  302.