From ca14ae5bcc4dcbca5e83e32aaa52e087890e90e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1roly=20Balogh?= Date: Tue, 16 Nov 2004 13:32:21 +0000 Subject: [PATCH] * initial revision --- rtl/morphos/inputevent.pas | 220 +++++++++++++++++++++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 rtl/morphos/inputevent.pas diff --git a/rtl/morphos/inputevent.pas b/rtl/morphos/inputevent.pas new file mode 100644 index 0000000000..a1e9bb9ae0 --- /dev/null +++ b/rtl/morphos/inputevent.pas @@ -0,0 +1,220 @@ +{ + $Id$ + This file is part of the Free Pascal run time library. + Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. + + input.device event definitions unit for MorphOS/PowerPC + + MorphOS port was done on a free Pegasos II/G4 machine + provided by Genesi S.a.r.l. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +{$PACKRECORDS 2} +unit inputevent; + +interface + +uses exec, utility, timer; + + +{ * input.device event definitions + * Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved. + * } + +const + IECLASS_NULL = $00; + IECLASS_RAWKEY = $01; + IECLASS_RAWMOUSE = $02; + IECLASS_EVENT = $03; + IECLASS_POINTERPOS = $04; + IECLASS_TIMER = $06; + IECLASS_GADGETDOWN = $07; + IECLASS_GADGETUP = $08; + IECLASS_REQUESTER = $09; + IECLASS_MENULIST = $0A; + IECLASS_CLOSEWINDOW = $0B; + IECLASS_SIZEWINDOW = $0C; + IECLASS_REFRESHWINDOW = $0D; + IECLASS_NEWPREFS = $0E; + IECLASS_DISKREMOVED = $0F; + IECLASS_DISKINSERTED = $10; + IECLASS_ACTIVEWINDOW = $11; + IECLASS_INACTIVEWINDOW = $12; + IECLASS_NEWPOINTERPOS = $13; + IECLASS_MENUHELP = $14; + IECLASS_CHANGEWINDOW = $15; + +{$ifndef IECLASS_NEWMOUSE} + const + IECLASS_NEWMOUSE = $16; +{$endif} + + +const + IECLASS_MAX = $16; + IESUBCLASS_COMPATIBLE = $00; + IESUBCLASS_PIXEL = $01; + IESUBCLASS_TABLET = $02; + IESUBCLASS_NEWTABLET = $03; + +type + PIEPointerPixel = ^TIEPointerPixel; + TIEPointerPixel = record + iepp_Screen : Pointer; + iepp_Position : record + X : Integer; + Y : Integer; + end; + end; + + PIEPointerTablet = ^TIEPointerTablet; + TIEPointerTablet = record + iept_Range : record + X : Word; + Y : Word; + end; + iept_Value : record + X : Word; + Y : Word; + end; + iept_Pressure : Integer; + end; + + PIENewTablet = ^TIENewTablet; + TIENewTablet = record + ient_CallBack : PHook; + ient_ScaledX : Word; + ient_ScaledY : Word; + ient_ScaledXFraction : Word; + ient_ScaledYFraction : Word; + ient_TabletX : DWord; + ient_TabletY : DWord; + ient_RangeX : DWord; + ient_RangeY : DWord; + ient_TagList : PTagItem; + end; + + +const + IECODE_UP_PREFIX = $80; + IECODE_KEY_CODE_FIRST = $00; + IECODE_KEY_CODE_LAST = $77; + IECODE_COMM_CODE_FIRST = $78; + IECODE_COMM_CODE_LAST = $7F; + IECODE_C0_FIRST = $00; + IECODE_C0_LAST = $1F; + IECODE_ASCII_FIRST = $20; + IECODE_ASCII_LAST = $7E; + IECODE_ASCII_DEL = $7F; + IECODE_C1_FIRST = $80; + IECODE_C1_LAST = $9F; + IECODE_LATIN1_FIRST = $A0; + IECODE_LATIN1_LAST = $FF; + IECODE_LBUTTON = $68; + IECODE_RBUTTON = $69; + IECODE_MBUTTON = $6A; + IECODE_NOBUTTON = $FF; + IECODE_NEWACTIVE = $01; + IECODE_NEWSIZE = $02; + IECODE_REFRESH = $03; + IECODE_REQSET = $01; + IECODE_REQCLEAR = $00; + IEQUALIFIER_LSHIFT = $0001; + IEQUALIFIER_RSHIFT = $0002; + IEQUALIFIER_CAPSLOCK = $0004; + IEQUALIFIER_CONTROL = $0008; + IEQUALIFIER_LALT = $0010; + IEQUALIFIER_RALT = $0020; + IEQUALIFIER_LCOMMAND = $0040; + IEQUALIFIER_RCOMMAND = $0080; + IEQUALIFIER_NUMERICPAD = $0100; + IEQUALIFIER_REPEAT = $0200; + IEQUALIFIER_INTERRUPT = $0400; + IEQUALIFIER_MULTIBROADCAST = $0800; + IEQUALIFIER_MIDBUTTON = $1000; + IEQUALIFIER_RBUTTON = $2000; + IEQUALIFIER_LEFTBUTTON = $4000; + IEQUALIFIER_RELATIVEMOUSE = $8000; + 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; + +{ * NewMouse events. } +{$ifndef NM_WHEEL_UP} + const + NM_WHEEL_UP = $7a; +{$endif} +{$ifndef NM_WHEEL_DOWN} + const + NM_WHEEL_DOWN = $7b; +{$endif} +{$ifndef NM_WHEEL_LEFT} + const + NM_WHEEL_LEFT = $7c; +{$endif} +{$ifndef NM_WHEEL_RIGHT} + const + NM_WHEEL_RIGHT = $7d; +{$endif} +{$ifndef NM_BUTTON_FOURTH} + const + NM_BUTTON_FOURTH = $7e; +{$endif} + +type + PInputEvent = ^TInputEvent; + TInputEvent = record + ie_NextEvent : PInputEvent; + ie_Class : Byte; + ie_SubClass : Byte; + ie_Code : Word; + ie_Qualifier : Word; + ie_position : record + case longint of + 0 : ( ie_xy : record + ie_x : Integer; + ie_y : Integer; + end ); + 1 : ( ie_addr : Pointer ); + 2 : ( ie_dead : record + ie_prev1DownCode : Byte; + ie_prev1DownQual : Byte; + ie_prev2DownCode : Byte; + ie_prev2DownQual : Byte; + end ); + end; + ie_TimeStamp : TTimeval; + end; + + +implementation + +end. + +{ + $Log$ + Revision 1.1 2004-11-16 13:32:21 karoly + * initial revision + +}