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   
Text File  |  1992-09-02  |  2KB  |  67 lines

  1. /*------------------------------------------------------------------------*
  2.  
  3.   cookRawkeyTest.e - test and demonstrate usage of module cookRawkey.m
  4.  
  5.  *------------------------------------------------------------------------*/
  6.  
  7. MODULE 'intuition/intuition',
  8.        'intuition/screens',
  9.        'graphics/rastport',
  10.        'tools/cookRawkey'
  11.  
  12. CONST ESCAPE_KEY=27
  13.  
  14. PROC main() HANDLE
  15.   DEF win=NIL:PTR TO window,
  16.       idcmpMessage:PTR TO intuimessage, idcmpCode, idcmpQualifier, iAddress,
  17.       error, errorMessage, asciiChar
  18.   /*------------------------------*
  19.     Init rawkey conversion module.
  20.    *------------------------------*/
  21.   IF error:=warmupRawkeyCooker() THEN Raise(error)
  22.   /*-- Convert rawkeys until ESC key is pressed. --*/
  23.   IF win:=OpenW(20, 20, 500, 150,
  24.                 IDCMP_RAWKEY, WFLG_ACTIVATE,
  25.                 'Press Escape to Quit', NIL, WBENCHSCREEN, NIL)
  26.     REPEAT
  27.       /*-- Wait on rawkey. --*/
  28.       WHILE (idcmpMessage:=GetMsg(win.userport))=NIL DO WaitPort(win.userport)
  29.       /*-- Copy intuimessage info, then reply. --*/
  30.       idcmpCode:=idcmpMessage.code
  31.       idcmpQualifier:=idcmpMessage.qualifier
  32.       iAddress:=idcmpMessage.iaddress
  33.       ReplyMsg(idcmpMessage)
  34.       /*------------------------*
  35.         Convert rawkey to ascii.
  36.        *------------------------*/
  37.       IF (asciiChar:=cookRawkey(idcmpCode, idcmpQualifier, iAddress)) <> ESCAPE_KEY
  38.         TextF(20, 40, 'Key=\c', asciiChar)
  39.       ENDIF
  40.     UNTIL asciiChar=ESCAPE_KEY
  41.     CloseW(win)
  42.   ELSE
  43.     WriteF('Can''t open window\n')
  44.   ENDIF
  45.   /*---------------------------------*
  46.     Cleanup rawkey conversion module.
  47.    *---------------------------------*/
  48.   shutdownRawkeyCooker()
  49. EXCEPT
  50.   errorMessage:='figger it out'
  51.   /*--------------------------------------*
  52.     Handle exceptions raised by conversion
  53.    *--------------------------------------*/
  54.   SELECT exception
  55.     CASE "MEM";          errorMessage:='get memory'
  56.     CASE ER_CREATEPORT;  errorMessage:='create message port'
  57.     CASE ER_CREATEIO;    errorMessage:='create IO request'
  58.     CASE ER_OPENDEVICE;  errorMessage:='open console.device'
  59.     CASE ER_ASKKEYMAP;   errorMessage:='ask keymap'
  60.   ENDSELECT
  61.   WriteF('Could not \s!\n', errorMessage)
  62.   /*---------------------------------*
  63.     Cleanup rawkey conversion module.
  64.    *---------------------------------*/
  65.   shutdownRawkeyCooker()
  66. ENDPROC
  67.