home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR22 / JORF21_2.ZIP / FRENKEYS.J < prev    next >
Text File  |  1993-07-05  |  3KB  |  135 lines

  1. FrenKeys:Start
  2.   New Key
  3.   Win:Add ("What Key?", 5, 15, 15, 50)
  4.     For French accents, use normal punctuation
  5.     characters in front of letters for these
  6.     accents:
  7.  
  8.       '   Accent Ague      'e  =  é
  9.       `   Accent Grave     `a  =  à
  10.       ,   Cedille          ,c  =  ç
  11.       ^   Circumflex       ^o  =  ô
  12.       :   Umlaut           :U  =  Ü
  13.       <<  Quotes           <<  =  «
  14.     {}
  15.   Event:Add ("FrenKeys","Key",Here)      | And use Frenkeys
  16.   Win:Msg ("Press Esc to Quit")
  17.  
  18.   While (Kbd:Got!="Esc_Key")
  19.     Str:Put ("Press a Key: ")
  20.     Key = Ok
  21.     While Key = Ok
  22.       Key = Kbd:Get ("Big")
  23.     Str:PutLine ('That was the "' + Key + '".')
  24.   Jorf:Exit
  25.  
  26. FrenKeys:'_key
  27.   If Mem:Ptr->LastKey
  28.     Return (Null)
  29.   Mem:Ptr->LastKey = "'"
  30.   Return (Ok)
  31.  
  32. FrenKeys:,_key
  33.   If Mem:Ptr->LastKey
  34.     Return (Null)
  35.   Mem:Ptr->LastKey = ","
  36.   Return (Ok)
  37.  
  38. FrenKeys::_key
  39.   If Mem:Ptr->LastKey
  40.     Return (Null)
  41.   Mem:Ptr->LastKey = ":"
  42.   Return (Ok)
  43.  
  44. FrenKeys:<_key
  45.   If Mem:Ptr->LastKey
  46.     Return (Null)
  47.   Mem:Ptr->LastKey = "<"
  48.   Return (Ok)
  49.  
  50. FrenKeys:>_key
  51.   If Mem:Ptr->LastKey
  52.     Return (Null)
  53.   Mem:Ptr->LastKey = ">"
  54.   Return (Ok)
  55.  
  56. FrenKeys:^_key
  57.   If Mem:Ptr->LastKey
  58.     Return (Null)
  59.   Mem:Ptr->LastKey = "^"
  60.   Return (Ok)
  61.  
  62. FrenKeys:`_key
  63.   If Mem:Ptr->LastKey
  64.     Return (Null)
  65.   Mem:Ptr->LastKey = "`"
  66.   Return (Ok)
  67.  
  68. FrenKeys:Else (Key)
  69.   New (DoubleKey)
  70.   If (Mem:Ptr->LastKey)
  71.     DoubleKey = Mem:Ptr->LastKey + Str:At (Key,1,1)
  72.     Mem:Ptr->LastKey = Null
  73.  
  74.     Switch DoubleKey
  75.       Case "`A"
  76.         Return "à_key"
  77.       Case "'A"
  78.         Return "á_key"
  79.       Case "^A"
  80.         Return "â_key"
  81.       Case ":A"
  82.         If To:Ascii (Key) < 97
  83.           Return "Ä_key"
  84.         Return "ä_key"
  85.       Case ',C'
  86.         If To:Ascii (Key) < 97
  87.           Return "Ç_Key"
  88.         Return "ç_Key"
  89.       Case "`E"
  90.         Return "è_key"
  91.       Case "'E"
  92.         If To:Ascii (Key) < 97
  93.           Return "É_key"
  94.         Return ("é_key")
  95.       Case "^E"
  96.         Return "ê_key"
  97.       Case ":E"
  98.         Return "ë_key"
  99.       Case "`I"
  100.         Return "ì_key"
  101.       Case "'I"
  102.         Return "í_key"
  103.       Case "^I"
  104.         Return "î_key"
  105.       Case ":I"
  106.         Return "ï_key"
  107.       Case "`O"
  108.         Return "ò_key"
  109.       Case "'O"
  110.         Return "ó_key"
  111.       Case "^O"
  112.         Return "ô_key"
  113.       Case ":O"
  114.         If To:Ascii (Key) < 97
  115.           Return "Ö_key"
  116.         Return "ö_key"
  117.       Case "`U"
  118.         Return "ù_key"
  119.       Case "'U"
  120.         Return "ú_key"
  121.       Case "^U"
  122.         Return "û_key"
  123.       Case ":U"
  124.         If To:Ascii (Key) < 97
  125.           Return "Ü_key"
  126.         Return "ü_key"
  127.       Case "<<"
  128.         Return "«_key"
  129.       Case ">>"
  130.         Return "»_key"
  131.     Kbd:Put (Key)
  132.     Return (Str:At (DoubleKey,1,1) + "_key")
  133.   Return (Key)
  134.  
  135.