home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / e / amigae30a_fr.lha / AmigaE30f / Sources / Tools / CookRawKey / cookRawkeyTest.e < prev   
Encoding:
Text File  |  1994-10-06  |  2.4 KB  |  67 lines

  1. /*------------------------------------------------------------------------*
  2.  
  3.   cookRawkeyTest.e - test et monstre l'usage du 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.     Initialise le module de conversion rawkey.
  20.    *------------------------------*/
  21.   IF error:=warmupRawkeyCooker() THEN Raise(error)
  22.   /*-- Converti les rawkeys jusqu'à ce que la touche ESC est pressée. --*/
  23.   IF win:=OpenW(20, 20, 500, 150,
  24.                 IDCMP_RAWKEY, WFLG_ACTIVATE,
  25.                 'Pressez Escape pour Quitter', NIL, WBENCHSCREEN, NIL)
  26.     REPEAT
  27.       /*-- Attend un rawkey. --*/
  28.       WHILE (idcmpMessage:=GetMsg(win.userport))=NIL DO WaitPort(win.userport)
  29.       /*-- Copie l'info intuimessage, et répond. --*/
  30.       idcmpCode:=idcmpMessage.code
  31.       idcmpQualifier:=idcmpMessage.qualifier
  32.       iAddress:=idcmpMessage.iaddress
  33.       ReplyMsg(idcmpMessage)
  34.       /*------------------------*
  35.         Converti rawkey en 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('Ne peut ouvrir la fenêtre\n')
  44.   ENDIF
  45.   /*---------------------------------*
  46.     Nettoie le module de conversion rawkey.
  47.    *---------------------------------*/
  48.   shutdownRawkeyCooker()
  49. EXCEPT
  50.   errorMessage:='figger it out'
  51.   /*--------------------------------------*
  52.     Gère les exceptions levées par conversion
  53.    *--------------------------------------*/
  54.   SELECT exception
  55.     CASE "MEM";          errorMessage:='avoir de la mémoire'
  56.     CASE ER_CREATEPORT;  errorMessage:='créé un port message'
  57.     CASE ER_CREATEIO;    errorMessage:='créé une requête IO'
  58.     CASE ER_OPENDEVICE;  errorMessage:='oouvrir le console.device'
  59.     CASE ER_ASKKEYMAP;   errorMessage:='demander le keymap'
  60.   ENDSELECT
  61.   WriteF('Ne peut pas \s!\n', errorMessage)
  62.   /*---------------------------------*
  63.     Nettoie le module de conversion rawkey.
  64.    *---------------------------------*/
  65.   shutdownRawkeyCooker()
  66. ENDPROC
  67.