home *** CD-ROM | disk | FTP | other *** search
- #ifndef __INC_POS_DEVICE_IEVENT_H
- #define __INC_POS_DEVICE_IEVENT_H
- /*******************************************************************
- Includes Release 24
- (C) Copyright 1995-1997 proDAD
- All Rights Reserved
-
- $AUT Holger Burkarth
- $DAT >>IEvent.h<< 22 Jan 1997 14:34:02 - (C) ProDAD
- *******************************************************************/
- #ifndef __INC_POS_PEXEC_LIST_H
- #include <pExec/List.h>
- #endif
- #ifndef __INC_POS_DEVICE_TIMER_H
- #include <Device/Timer.h>
- #endif
- #ifndef __INC_POS_PLAYER_RECT_H
- #include <pLayer/Rect.h>
- #endif
-
-
-
- enum pOS_InputEventClass
- {
- IECLASS_NULL =0x00, /* A NOP input event */
- IECLASS_RAWKEY =0x01, /* A raw keycode from the keyboard device */
- IECLASS_RAWMOUSE =0x02, /* The raw mouse report from the game port device */
- IECLASS_EVENT =0x03, /* A private console event */
- IECLASS_POINTERPOS =0x04, /* A Pointer Position report */
- IECLASS_TIMER =0x06, /* A timer event */
- IECLASS_GADGETDOWN =0x07, /* select button pressed down over a Gadget (address in ie_EventAddress) */
- IECLASS_GADGETUP =0x08, /* select button released over the same Gadget (address in ie_EventAddress) */
- IECLASS_GADGETABORT =0x09, /* (address in ie_EventAddress) */
- IECLASS_MENULIST =0x0A, /* this is a Menu Number transmission (Menu number is in ie_Code) */
- IECLASS_CLOSEWINDOW =0x0B, /* User has selected the active Window's Close Gadget */
- IECLASS_SIZEWINDOW =0x0C, /* this Window has a new size */
- IECLASS_REFRESHWINDOW =0x0D, /* the Window pointed to by ie_EventAddress needs to be refreshed */
- IECLASS_UPDATEGADGET =0x0E, /* Gadget wurde verändert (prop) (address in ie_EventAddress) */
- IECLASS_DISKREMOVED =0x0F, /* the disk has been removed */
- IECLASS_DISKINSERTED =0x10, /* the disk has been inserted */
- IECLASS_ACTIVEWINDOW =0x11, /* the window is about to be been made active */
- IECLASS_INACTIVEWINDOW=0x12, /* the window is about to be made inactive */
-
- IECLASS_HELP =0x14, /* Help */
- IECLASS_CHANGEWINDOW =0x15, /* the Window has been modified with move, size, zoom, or change */
- IECLASS_DRAGKEY =0x16, /* */
- IECLASS_DROP =0x17, /* */
-
- IECLASS_MAX =0x17, /* the last class */
- };
-
-
- enum pOS_InputEventSubClass
- {
- IESUBCLASS_COMPATIBLE=0x00, /* IECLASS_NEWPOINTERPOS */
- IESUBCLASS_PIXEL =0x01, /* ie_EventAddress points to struct IEPointerPixel */
- IESUBCLASS_TABLET =0x02, /* ie_EventAddress points to struct IEPointerTablet */
- IESUBCLASS_NEWTABLET =0x03, /* ie_EventAddress points to struct IENewTablet */
- };
-
-
- enum pOS_InputEventCode
- {
- /* IECLASS_RAWKEY */
- IECODE_UP_PREFIX =0x80,
- IECODE_KEY_CODE_FIRST =0x00,
- IECODE_KEY_CODE_LAST =0x77,
- IECODE_COMM_CODE_FIRST =0x78,
- IECODE_COMM_CODE_LAST =0x7F,
-
- /* IECLASS_ANSI */
- IECODE_C0_FIRST =0x00,
- IECODE_C0_LAST =0x1F,
- IECODE_ASCII_FIRST =0x20,
- IECODE_ASCII_LAST =0x7E,
- IECODE_ASCII_DEL =0x7F,
- IECODE_C1_FIRST =0x80,
- IECODE_C1_LAST =0x9F,
- IECODE_LATIN1_FIRST =0xA0,
- IECODE_LATIN1_LAST =0xFF,
-
- /* IECLASS_RAWMOUSE */
- IECODE_LBUTTON =0x68, /* also uses IECODE_UP_PREFIX */
- IECODE_RBUTTON =0x69,
- IECODE_MBUTTON =0x6A,
- IECODE_NOBUTTON =0xFF,
-
- /* IECLASS_SIZEWINDOW, IECLASS_CHANGEWINDOW */
- IECODE_ADDWIDTH =0x0001,
- IECODE_SUBWIDTH =0x0002,
- IECODE_ADDHEIGHT =0x0004,
- IECODE_SUBHEIGHT =0x0008,
- IECODE_ADDLEFT =0x0010,
- IECODE_SUBLEFT =0x0020,
- IECODE_ADDTOP =0x0040,
- IECODE_SUBTOP =0x0080,
-
- /* IECODE_DROP */
- IECODE_DROP_FIRST =0x00, /* Message für Drop erzeugen */
- IECODE_DROP_WORK =0x01, /* Drop-Message bearbeiten */
- IECODE_DROP_ABORT =0x02, /* Drop-Message wurde nicht bearbeitet */
- IECODE_DROP_REPLYWORK =0x03, /* Message nach pOS_ReplyMsg bearbeiten */
- };
-
-
- enum pOS_InputEventGdUpCode /** GadgetUpdate, GadgetUp, GadgetDown, GadgetAbort */
- {
- /* wird gefilter => + */
-
- IEGUCODE_Mask=0xff,
- IEGUCODE_Unknown =0, /* 0 Unbekannt, kann nicht eingeteilt werden */
- IEGUCODE_Start, /* 1 Prozeß, Vorgang, Ablauf,... wird gestartet */
- IEGUCODE_Stop, /* Prozeß, Vorgang, Ablauf,... wurde gestoppt */
- IEGUCODE_End, /* Prozeß, Vorgang, Ablauf,... wurde beendet */
- IEGUCODE_Select, /* Der Selektzustand hat sich verändert */
- IEGUCODE_Scroll, /*+ 5 Grafikinhalt wurde verschoben */
- IEGUCODE_Ok, /* Bestätigung */
- IEGUCODE_Cancel, /* Widerruft, Abbruch */
- IEGUCODE_Error, /* Fehler */
- IEGUCODE_Notify, /* Auslöser ist ICLMTH_Notify */
- IEGUCODE_UpSelect, /*+ 10 Der Selektzustand hat sich verändert (Update auf IEGUCODE_Select) */
- IEGUCODE_Alternate, /* Allegmeine Veränderung, (Eingabe in StrGad) */
- IEGUCODE_Drop, /* Eingabe erfolgte per Drag&Drop */
- IEGUCODE_Active, /* Gadget wurde aktiviert (Fokus auf Gadget) */
- IEGUCODE_Inactive, /* Gadget gibt Fokus ab */
- IEGUCODE_Drag, /* 15 */
- IEGUCODE_MAX,
- };
-
-
-
-
-
- enum pOS_InputEventQualifier
- {
- IEQUALIFIER_LSHIFT =0x0001,
- IEQUALIFIER_RSHIFT =0x0002,
- IEQUALIFIER_CAPSLOCK =0x0004,
- IEQUALIFIER_CONTROL =0x0008,
- IEQUALIFIER_LALT =0x0010,
- IEQUALIFIER_RALT =0x0020,
- IEQUALIFIER_LCOMMAND =0x0040,
- IEQUALIFIER_RCOMMAND =0x0080,
- IEQUALIFIER_NUMERICPAD =0x0100,
- IEQUALIFIER_REPEAT =0x0200,
- IEQUALIFIER_INTERRUPT =0x0400,
- IEQUALIFIER_MULTIBROADCAST =0x0800,
- IEQUALIFIER_MIDBUTTON =0x1000,
- IEQUALIFIER_RBUTTON =0x2000,
- IEQUALIFIER_LEFTBUTTON =0x4000,
- IEQUALIFIER_RELATIVEMOUSE =0x8000,
-
- IEQUALIFIERB_LSHIFT =0,
- IEQUALIFIERB_RSHIFT =1,
- IEQUALIFIERB_CAPSLOCK =2,
- IEQUALIFIERB_CONTROL =3,
- IEQUALIFIERB_LALT =4,
- IEQUALIFIERB_RALT =5,
- IEQUALIFIERB_LCOMMAND =6,
- IEQUALIFIERB_RCOMMAND =7,
- IEQUALIFIERB_NUMERICPAD =8,
- IEQUALIFIERB_REPEAT =9,
- IEQUALIFIERB_INTERRUPT =10,
- IEQUALIFIERB_MULTIBROADCAST =11,
- IEQUALIFIERB_MIDBUTTON =12,
- IEQUALIFIERB_RBUTTON =13,
- IEQUALIFIERB_LEFTBUTTON =14,
- IEQUALIFIERB_RELATIVEMOUSE =15,
- };
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_IEPointerPixel
- {
- struct pOS_Screen *iepp_Screen;
- struct pOS_Point iepp_Position;
- };
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_IEPointerTablet
- {
- struct pOS_Point iept_Range;
- struct pOS_Point iept_Value;
- SWORD iept_Pressure; /* -128 => 127 (unused, set to 0) */
- };
-
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_IENewTablet
- {
- struct pOS_Callback *ient_CallBack;
- UWORD ient_ScaledX, ient_ScaledY;
- UWORD ient_ScaledXFraction, ient_ScaledYFraction;
- ULONG ient_TabletX, ient_TabletY;
- ULONG ient_RangeX, ient_RangeY;
- const struct pOS_TagItem *ient_TagList;
- };
-
-
-
- /*----------------------------------
- ie_Class==IECLASS_DROP
- (struct pOS_IEDragDrop*)ie->ie_EventAddress
- -----------------------------------*/
- struct pOS_IEDragDrop
- {
- struct {
- struct pOS_Screen *iedd_Screen;
- struct pOS_Window *iedd_Window;
- struct pOS_Gadget *iedd_Gadget;
- struct pOS_Point iedd_Mouse;
- struct pOS_TimeVal iedd_Time;
-
- UBYTE iedd_Reserved1[8];
-
- } iedd_Src, iedd_Dst; /* Source, Destination */
-
- const struct pOS_DropAttribute *iedd_DropAtt;
- struct pOS_DataType *iedd_Object;
- struct pOS_Point iedd_Offset;
-
- };
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_InputEvent
- {
- struct pOS_InputEvent *ie_NextEvent; /* the chronologically next event */
- UBYTE ie_Class; /* the input event class */
- UBYTE ie_SubClass; /* optional subclass of the class */
- ULONG ie_Code; /* the input event code */
- UWORD ie_Qualifier; /* qualifiers in effect for the event*/
- UBYTE ie_Reserved1[8];
- union {
- UBYTE ie_Reserved2[8];
- struct {
- UWORD ie_x; /* the pointer position for the event*/
- UWORD ie_y;
- } ie_xy;
- APTR ie_addr; /* the event address */
- ULONG ie_deadKey; /* DeadKey pack */
- struct {
- UBYTE ie_prev1DownCode; /* previous down keys for dead */
- UBYTE ie_prev1DownQual; /* key translation: the ie_Code */
- UBYTE ie_prev2DownCode; /* & low byte of ie_Qualifier for */
- UBYTE ie_prev2DownQual; /* last & second last down keys */
- } ie_dead;
- } ie_position;
-
- struct pOS_TimeVal ie_TimeStamp; /* the system tick at the event */
- ULONG ie_Data;
-
- UBYTE ie_Reserved3[8];
- };
-
-
- #define ie_DeadKey ie_position.ie_deadKey
-
- #ifndef ie_X
- #define ie_X ie_position.ie_xy.ie_x
- #define ie_Y ie_position.ie_xy.ie_y
- #define ie_EventAddress ie_position.ie_addr
- #define ie_Prev1DownCode ie_position.ie_dead.ie_prev1DownCode
- #define ie_Prev1DownQual ie_position.ie_dead.ie_prev1DownQual
- #define ie_Prev2DownCode ie_position.ie_dead.ie_prev2DownCode
- #define ie_Prev2DownQual ie_position.ie_dead.ie_prev2DownQual
- #endif
-
- #endif
-