home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 2
/
goldfish_vol2_cd1.bin
/
files
/
dev
/
e
/
amiga_e
/
src
/
tools
/
cookrawkey
/
cookrawkeytest.e
< prev
Wrap
Text File
|
1992-09-02
|
2KB
|
67 lines
/*------------------------------------------------------------------------*
cookRawkeyTest.e - test and demonstrate usage of module cookRawkey.m
*------------------------------------------------------------------------*/
MODULE 'intuition/intuition',
'intuition/screens',
'graphics/rastport',
'tools/cookRawkey'
CONST ESCAPE_KEY=27
PROC main() HANDLE
DEF win=NIL:PTR TO window,
idcmpMessage:PTR TO intuimessage, idcmpCode, idcmpQualifier, iAddress,
error, errorMessage, asciiChar
/*------------------------------*
Init rawkey conversion module.
*------------------------------*/
IF error:=warmupRawkeyCooker() THEN Raise(error)
/*-- Convert rawkeys until ESC key is pressed. --*/
IF win:=OpenW(20, 20, 500, 150,
IDCMP_RAWKEY, WFLG_ACTIVATE,
'Press Escape to Quit', NIL, WBENCHSCREEN, NIL)
REPEAT
/*-- Wait on rawkey. --*/
WHILE (idcmpMessage:=GetMsg(win.userport))=NIL DO WaitPort(win.userport)
/*-- Copy intuimessage info, then reply. --*/
idcmpCode:=idcmpMessage.code
idcmpQualifier:=idcmpMessage.qualifier
iAddress:=idcmpMessage.iaddress
ReplyMsg(idcmpMessage)
/*------------------------*
Convert rawkey to ascii.
*------------------------*/
IF (asciiChar:=cookRawkey(idcmpCode, idcmpQualifier, iAddress)) <> ESCAPE_KEY
TextF(20, 40, 'Key=\c', asciiChar)
ENDIF
UNTIL asciiChar=ESCAPE_KEY
CloseW(win)
ELSE
WriteF('Can''t open window\n')
ENDIF
/*---------------------------------*
Cleanup rawkey conversion module.
*---------------------------------*/
shutdownRawkeyCooker()
EXCEPT
errorMessage:='figger it out'
/*--------------------------------------*
Handle exceptions raised by conversion
*--------------------------------------*/
SELECT exception
CASE "MEM"; errorMessage:='get memory'
CASE ER_CREATEPORT; errorMessage:='create message port'
CASE ER_CREATEIO; errorMessage:='create IO request'
CASE ER_OPENDEVICE; errorMessage:='open console.device'
CASE ER_ASKKEYMAP; errorMessage:='ask keymap'
ENDSELECT
WriteF('Could not \s!\n', errorMessage)
/*---------------------------------*
Cleanup rawkey conversion module.
*---------------------------------*/
shutdownRawkeyCooker()
ENDPROC