Isoraqathedh

Dead Key Function

Jun 16th, 2014
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;{ Dead Key List
  2. deadKeyList := {}
  3. deadKeyList["Grave"]:=     {"a":"à", "e":"è", "i":"ì", "n":"ǹ", "o":"ò", "u":"ù", "w":"ẁ", "y":"ỳ"
  4.     ,                                "none":"``"}
  5. deadKeyList["Tilde"]:=     {"a":"ã", "e":"ẽ", "i":"ĩ", "n":"ñ", "o":"õ", "u":"ũ", "v":"ṽ", "y":"ỹ"
  6.     ,                                "none":"~"}
  7. deadKeyList["Acute"]:=     {"a":"á", "c":"ć", "e":"é", "g":"ǵ", "i":"í", "k":"ḱ", "l":"ĺ", "m":"ḿ"
  8.     ,                                "n":"ń", "o":"ó", "p":"ṕ", "r":"ŕ", "s":"ś", "u":"ú", "w":"ẃ"
  9.     ,                                "y":"ý", "z":"ź", "æ":"ǽ", "none":"'"}
  10. deadKeyList["Umlaut"]:=    {"a":"ä", "e":"ë", "h":"ḧ", "i":"ï", "o":"ö", "t":"ẗ", "u":"ü", "w":"ẅ"
  11.     ,                                "x":"ẍ", "y":"ÿ", "none":Chr(34)}
  12. deadKeyList["Circumflex"]:={"a":"â", "c":"ĉ", "e":"ê", "g":"ĝ", "h":"ĥ", "i":"î", "j":"ĵ", "o":"ô"
  13.     ,                                "s":"ŝ", "u":"û", "w":"ŵ", "y":"ŷ", "z":"ẑ",  "none":"+6"}
  14. deadKeyList["Macron"]:=    {"a":"ā", "b":"ḇ", "d":"ḏ", "e":"ē", "g":"ḡ", "h":"ẖ", "i":"ī", "k":"ḵ"
  15.     ,                                "l":"ḻ", "n":"ṉ", "o":"ō", "r":"ṟ", "t":"ṯ", "u":"ū", "y":"ȳ"
  16.     ,                                "z":"ẕ", "none":"-"}
  17. deadKeyList["Stroke"]:=    {"a":"ⱥ", "b":"ƀ", "c":"ȼ", "d":"đ", "e":"ɇ", "g":"ǥ", "h":"ħ", "i":"ɨ"
  18.     ,                                "j":"ɉ", "l":"ł", "o":"ø", "p":"ᵽ", "r":"ɍ", "t":"ŧ", "u":"ʉ"
  19.     ,                                "y":"ɏ", "z":"ƶ", "none":"_"}
  20. deadKeyList["Ring"]:=      {"a":"å", "u":"ů", "w":"ẘ", "y":"ẙ", "none":"˚"}
  21. deadKeyList["Caron"]:=     {"a":"ǎ", "c":"č", "d":"ď", "e":"ě", "g":"ǧ", "h":"ȟ", "i":"ǐ", "j":"ǰ"
  22.     ,                                "k":"ǩ", "l":"ľ", "n":"ň", "o":"ǒ", "r":"ř", "s":"š", "t":"ť"
  23.     ,                                "u":"ǔ", "z":"ž", "none":"ˇ"}
  24. deadKeyList["Cedilla"]:=   {"c":"ç", "d":"ḑ", "e":"ȩ", "g":"ģ", "h":"ḩ", "k":"ķ", "l":"ļ", "n":"ņ"
  25.     ,                                "r":"ŗ", "s":"ş", "t":"ţ", "none":"¸"}
  26. deadKeyList["Ogonek"]:=    {"a":"ą", "e":"ę", "i":"į", "o":"ǫ", "u":"ų", "none":"˛"}
  27. deadKeyList["Breve"]:=     {"a":"ă", "e":"ĕ", "g":"ğ", "h":"ḫ", "i":"ĭ", "o":"ŏ", "u":"ŭ"
  28.     ,                                "none":"˘"}
  29. ;} Dead Key List
  30.  
  31. DeadKey(diacritic) {
  32.     global deadKeyList
  33.     light(1, 1)
  34.     Suspend On
  35.     Input letter, l1
  36.     Suspend Off
  37.     if (letter = " ")
  38.         Send % deadKeyList[diacritic, "none"]
  39.     else if (deadKeyList[diacritic].hasKey(letter))
  40.     {
  41.         outLetter := deadKeyList[diacritic, letter]
  42.         if letter is upper
  43.             StringUpper, outLetter, outLetter
  44.         Send %outLetter%
  45.     }
  46.     else, Send % deadKeyList[diacritic, "none"] . letter
  47.     light(1, 0)
  48. }
  49.  
  50. $`::DeadKey("Grave")
  51. $+`::DeadKey("Tilde")
  52. $'::DeadKey("Acute")
  53. $+'::DeadKey("Umlaut")
  54. $+6::DeadKey("Circumflex")
  55. $-::DeadKey("Macron")
  56. $+-::DeadKey("Stroke")
  57. <^>!+`::DeadKey("Ring")
  58. <^>!v::DeadKey("Caron")
  59. <^>!.::DeadKey("Cedilla")
  60. <^>!`::DeadKey("Breve")
  61. <^>!+.::DeadKey("Ogonek")
Advertisement
Add Comment
Please, Sign In to add comment