
	IFND	DEVICES_INPUTEVENT_I
	INCLUDE	'devices/inputevent.i'
	ENDC


ihs_Port	=0
ihs_Interrupt	=MP_SIZE
ihs_ID		=MP_SIZE+IS_SIZE
ihs_MemEntry	=MP_SIZE+IS_SIZE+4
ihs_Flags	=MP_SIZE+IS_SIZE+8
ihs_PortName	=MP_SIZE+IS_SIZE+10

ihs_Start	MACRO
		dcb.b		MP_SIZE	; Message-Port structure
		dcb.b		IS_SIZE	; Interrupt structure
		dc.l		'P_IH'	; ID (Handler made by me)
		dc.l		0	; MemEntry
		dc.w		0	; Flags
		PWkeys_PortName
		EVEN
		ENDM

RAMIGA		=IEQUALIFIER_RCOMMAND
RSHIFT		=IEQUALIFIER_RSHIFT
RALT		=IEQUALIFIER_RALT
LAMIGA		=IEQUALIFIER_LCOMMAND
LSHIFT		=IEQUALIFIER_LSHIFT
LALT		=IEQUALIFIER_LALT

CTRL		=IEQUALIFIER_CONTROL
CAPSLOCK	=IEQUALIFIER_CAPSLOCK
SHIFT		=LSHIFT|RSHIFT
ALT		=LALT|RALT
AMIGA		=LAMIGA|RAMIGA

UPARROW		=$4C
DOWNARROW	=$4D
RIGHTARROW	=$4E
LEFTARROW	=$4F
KP0		=$0F
KP1		=$1D
KP2		=$1E
KP3		=$1F
KP4		=$2D
KP5		=$2E
KP6		=$2F
KP7		=$3D
KP8		=$3E
KP9		=$3F

F1		=$50
F2		=$51
F3		=$52
F4		=$53
F5		=$54
F6		=$55
F7		=$56
F8		=$57
F9		=$58
F10		=$59

SPACE		=$40
BACKSPACE	=$41
TAB		=$42
ENTER		=$43
RETURN		=$44
ESC		=$45
DEL		=$46
HELP		=$5F

U_CODE			=20000
U_QUAL			=0

W_TO_TOP		=0
W_TO_BOTTOM		=1
W_TO_LEFT		=2
W_TO_RIGHT		=3
W_TO_LEFT_TOP		=4
W_TO_LEFT_BOTTOM	=5
W_TO_RIGHT_TOP		=6
W_TO_RIGHT_BOTTOM	=7
W_TO_CENTER		=8
W_TO_FRONT		=9
W_TO_BACK		=10
BACK_W_TO_FRONT		=11
FRONT_W_TO_BACK		=12
ACTIVATE_PREV_W		=13
ACTIVATE_NEXT_W		=14
MINIMIZE_W		=15
MAXIMIZE_W		=16
REFRESH_W		=17
BACK_S_TO_FRONT		=18
FRONT_S_TO_BACK		=19
SUB_BITPLANE		=20
ADD_BITPLANE		=21
TOGGLE_INPUTLOCK	=22
TOGGLE_FASTMOUSE	=23
TOGGLE_SUNMOUSE		=24
KeyFuncNumber		=25

HotKey_ID	=0		; What identifies this hotkey
HotKey_Code	=0		; The hotkeys action-key
HotKey_Qual	=2		; The hotkeys qualifier-keys
HotKey_Mask	=4		; What distinguishes this hotkey from others with same code
HotKey_Func	=4		; Function to execute
HotKey_FF	=5		; Just mask
HotKey_QMask	=6		; 'OR'ed qualifiers of all hotkeys with same code
HotKey_SIZE	=8
HotKey		MACRO
* HotKey_ID
		dc.w		\1	; HotKey_Code
		dc.w		\2	; HotKey_Qual
* HotKey_Mask
		dc.b		\4	; HotKey_Func
		dc.b		$FF	; HotKey_FF
		dc.w		\3	; HotKey_QMask
		ENDM

pw_ID		=0
pw_Ver		=4
pw_Rev		=6
pw_Pri		=8
pw_Pad1		=9
pw_Accel	=10
pw_Thresh	=11
pw_MTimeout	=12
pw_STimeout	=16
pw_MWaitTime	=20
pw_SWaitTime	=24
pw_KeyNum	=28
pw_KeyDefs	=30
pw_VarPart	=pw_KeyDefs
pw_KeyPart	=KeyFuncNumber*HotKey_SIZE
pw_SIZE		=pw_VarPart+pw_KeyPart

PWkeysVersion	=2
PWkeysRevision	=0
* Default values
PWkeysPri	=51
PWkeysMSpeed	=3
PWkeysMThresh	=1
PWkeysMTimeout	=5
PWkeysSTimeout	=300

* The strings below automatically changes to reflect the version/revision
PWkeys_Name	MACRO
		dc.b		'PWkeys V'
		dc.b		'0'+PWkeysVersion
		dc.b		'.'
		dc.b		'0'+PWkeysRevision
		ENDM

PWkeys_PortName	MACRO
		PWkeys_Name
		dc.b		' Port',0
		ENDM

SetPWkeys_Title	MACRO
		dc.b		'Set'
		PWkeys_Name
		dc.b		' 1991 by Preben Nielsen',0
		ENDM

PWkeys_CON_Msg	MACRO
		dc.b		10,$9B,'0;33m '
		PWkeys_Name
		dc.b		10
		dc.b		$9B,'0;31m 1991 by ',$9B,'0;33mPreben Nielsen',$9B,'0;31m',10,' ',0
		ENDM

