From bed114b5561ee8228b8f469aee88fe022da517ae Mon Sep 17 00:00:00 2001 From: martin_r Date: Sat, 30 Aug 2008 15:03:30 +0000 Subject: =?UTF-8?q?Cokos:=20=E2=80=BA=E2=80=BC=E2=80=B9,=20=E2=80=BA?= =?UTF-8?q?=E2=81=87=E2=80=B9=20=C3=BCber=20=E2=99=AB=3F2/=E2=99=AB!2.=20B?= =?UTF-8?q?linde=20Compose=20jetzt=20auch=20bei=20SendUnicodeChar().=20Sen?= =?UTF-8?q?dUnicodeChar=20belegt=20CompKey=20mit=20dem=20Argument.=20Nicht?= =?UTF-8?q?-blinde=20Compose=20wiederhergestellt.=20Vorbereitungen=20zur?= =?UTF-8?q?=20Aufnahme=20weiterer=20Cokos.=20Begrenzung=20der=20(blinden)?= =?UTF-8?q?=20Compose=20auf=202=20Zeichen,=20wenn=20keine=20=C3=9Cbereinst?= =?UTF-8?q?immung=20mit=20Coko=20vorliegt.=20=C2=BB=E1=BA=97=C2=AB=20zu=20?= =?UTF-8?q?den=20Tokos=20hinzugef=C3=BCgt.=20"DeadKey=20:=3D"=20in=20die?= =?UTF-8?q?=20dead*-Methoden=20verschoben.=20OutputChar=20in=20OutputChar1?= =?UTF-8?q?2=20umbenannt,=20OutputChar=20hat=20nur=20noch=20ein=20Argument?= =?UTF-8?q?.=20Code=20zusammengefasst,=20Formatierungen=20angepasst.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.neo-layout.org@833 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- windows/autohotkey/neo20.ahk | 389 ++++++++++++++++++++++--------------------- 1 file changed, 199 insertions(+), 190 deletions(-) (limited to 'windows/autohotkey/neo20.ahk') diff --git a/windows/autohotkey/neo20.ahk b/windows/autohotkey/neo20.ahk index 617ff4c..e73b99c 100644 --- a/windows/autohotkey/neo20.ahk +++ b/windows/autohotkey/neo20.ahk @@ -753,44 +753,33 @@ VK09SC00F::goto neo_tab */ neo_tot1: - noCaps=1 + noCaps = 1 EbeneAktualisieren() - if (Ebene=1) and !CheckDeadUni("c1",0x0302) { - deadUni(0x02C6) ; Zirkumflex, tot - DeadKey = c1 - } else if (Ebene = 2) and !CheckDeadUni("c2",0x030C) { - deadUni(0x02C7) ; Caron, tot - DeadKey = c2 - } else if (Ebene = 3) and !CheckDeadUni("c3",0x0306) { - deadUni(0x02D8) ; Brevis, tot - DeadKey = c3 - } else if (Ebene = 4) { - deadUni(0x00B7) ; Mittenpunkt, tot - DeadKey = c4 - } else if (Ebene = 5) and !CheckDeadUni("c5",0x0335) { - deadUni(0x002D) ; Querstrich, tot - DeadKey = c5 - } else if (Ebene = 6) and !CheckDeadUni("c6",0x0323) { - deadUni(0x002E) ; Punkt drunter (Colon), tot - DeadKey = c6 - } CompKey := PriorCompKey + if (Ebene = 1) and !CheckDeadUni("c1",0x0302) + deadUni(0x02C6, "c1") ; Zirkumflex, tot + else if (Ebene = 2) and !CheckDeadUni("c2",0x030C) + deadUni(0x02C7, "c2") ; Caron, tot + else if (Ebene = 3) and !CheckDeadUni("c3",0x0306) + deadUni(0x02D8, "c3") ; Brevis, tot + else if (Ebene = 4) + deadUni(0x00B7, "c4") ; Mittenpunkt, tot + else if (Ebene = 5) and !CheckDeadUni("c5",0x0335) + deadUni(0x002D, "c5") ; Querstrich, tot + else if (Ebene = 6) and !CheckDeadUni("c6",0x0323) + deadUni(0x002E, "c6") ; Punkt drunter (Colon), tot + CompKey := PriorCompKey return neo_1: noCaps=1 EbeneAktualisieren() - if Ebene12 { + if Ebene12 if !(CheckDeadUni("c1",0x00B9) ; Hochgestellte 1 or CheckDeadUni("c5",0x2081) ; Tiefgestellte 1 or CheckComp3Uni("r_1",0x217A) ; Römisch xi or CheckComp3Uni("R_1",0x216A)) ; Römisch XI - outputChar(1,"°") - if !checkComp(1) - if (PriorCompKey == "r") - CompKey := "r_1" - else if (PriorCompkey == "R") - CompKey := "R_1" - } else if (Ebene = 3) + OutputChar12(1,"°") + else if (Ebene = 3) SendUnicodeChar(0x00B9) ; Hochgestellte 1 else if (Ebene = 4) SendUnicodeChar(0x2022) ; Bullet @@ -803,16 +792,16 @@ return neo_2: noCaps = 1 EbeneAktualisieren() - if (Ebene = 1) { - if !(CheckDeadUni("c1",0x00B2) ; Hochgestellte 2 - or CheckDeadUni("c5",0x2082) ; Tiefgestellte 2 - or CheckCompUni("r",0x2171) ; Römisch ii - or CheckCompUni("R",0x2161) ; Römisch II - or CheckComp3Uni("r_1",0x217B) ; Römisch xii - or CheckComp3Uni("R_1",0x216B)) ; Römisch XII - outputChar(2,"") - checkComp(2) - } else if (Ebene = 2) + if (Ebene = 1 and !(CheckDeadUni("c1",0x00B2) ; Hochgestellte 2 + or CheckDeadUni("c5",0x2082) ; Tiefgestellte 2 + or CheckCompUni("r",0x2171) ; Römisch ii + or CheckCompUni("R",0x2161) ; Römisch II + or CheckComp3Uni("r_1",0x217B) ; Römisch xii + or CheckComp3Uni("R_1",0x216B) ; Römisch XII + or CheckCompUni("{!}",0x203C) ; DOUBLE EXCLAMATION MARK + or CheckCompUni("?",0x2047))) ; DOUBLE QUESTION MARK + OutputChar(2) + else if (Ebene = 2) SendUnicodeChar(0x2116) ; Numero else if (Ebene = 3) SendUnicodeChar(0x00B2) ; Hochgestellte 2 @@ -834,8 +823,7 @@ neo_3: or CheckCompUni("2",0x2154) ; 2/3 or CheckCompUni("r",0x2172) ; Römisch iii or CheckCompUni("R",0x2162)) ; Römisch III - outputChar(3,"§") - checkComp(3) + OutputChar12(3,"§") } else if (Ebene = 3) SendUnicodeChar(0x00B3) ; Hochgestellte 3 else if (Ebene = 4) @@ -854,8 +842,7 @@ neo_4: or CheckDeadUni("c5",0x2084) ; Tiefgestellte 4 or CheckCompUni("r",0x2173) ; Römisch iv or CheckCompUni("R",0x2163)) ; Römisch IV - outputChar(4,"") - checkComp(4) + OutputChar(4) } else if (Ebene = 2) SendUnicodeChar(0x00BB) ; Double guillemot right else if (Ebene = 3) @@ -880,8 +867,7 @@ neo_5: or CheckCompUni("4",0x2158) ; 4/5 or CheckCompUni("r",0x2174) ; Römisch v or CheckCompUni("R",0x2164)) ; Römisch V - outputChar(5,"") - checkComp(5) + OutputChar(5) } else if (Ebene = 2) SendUnicodeChar(0x00AB) ; Double guillemot left else if (Ebene = 3) @@ -902,8 +888,7 @@ neo_6: or CheckCompUni("5",0x215A) ; 5/6 or CheckCompUni("r",0x2175) ; Römisch vi or CheckCompUni("R",0x2165)) ; Römisch VI - outputChar(6,"") - checkComp(6) + OutputChar(6) } else if (Ebene = 2) SendUnicodeChar(0x20AC) else if (Ebene = 3) @@ -922,8 +907,7 @@ neo_7: or CheckDeadUni("c5",0x2087) ; Tiefgestellte 7 or CheckCompUni("r",0x2176) ; Römisch vii or CheckCompUni("R",0x2166)) ; Römisch VII - outputChar(7,"$") - checkComp(7) + OutputChar12(7,"$") } else if (Ebene = 3) send {blind}¥ else if (Ebene = 4) @@ -946,8 +930,7 @@ neo_8: or CheckCompUni("7",0x215E) ; 7/8 or CheckCompUni("r",0x2177) ; Römisch viii or CheckCompUni("R",0x2167)) ; Römisch VIII - outputChar(8,"„") - checkComp(8) + OutputChar12(8,"„") } else if (Ebene = 3) send {blind}‚ else if (Ebene = 4) @@ -966,8 +949,7 @@ neo_9: or CheckDeadUni("c5",0x2089) ; Tiefgestellte 9 or CheckCompUni("r",0x2178) ; Römisch ix or CheckCompUni("R",0x2168)) ; Römisch IX - outputChar(9,"“") - checkComp(9) + OutputChar12(9,"“") } else if (Ebene = 3) send {blind}‘ else if (Ebene = 4) @@ -986,8 +968,7 @@ neo_0: or CheckDeadUni("c5",0x2080) ; Tiefgestellte 0 or CheckDeadUni("r_1",0x2177) ; Römisch x or CheckComp3Uni("R_1",0x2169)) ; Römisch X - outputChar(0,"”") - checkComp(0) + OutputChar12(0,"”") } else if (Ebene = 3) send {blind}’ else if (Ebene = 4) @@ -1000,7 +981,7 @@ neo_strich: noCaps = 1 EbeneAktualisieren() if (Ebene = 1) - outputChar("-","") ; Bindestrich-Minus + OutputChar("-") ; Bindestrich-Minus else if (Ebene = 2) SendUnicodeChar(0x2013) ; Gedankenstrich else if (Ebene = 3) @@ -1014,25 +995,19 @@ return neo_tot2: noCaps = 1 EbeneAktualisieren() - if (Ebene = 1) and !CheckDeadUni("a1",0x0301) { - deadAsc("{´}{space}") ; Akut, tot - DeadKey := "a1" - } else if (Ebene = 2) and !CheckDeadUni("a2",0x0300) { - deadAsc("``{space}") ; Gravis, tot - DeadKey := "a2" - } else if (Ebene = 3) and !CheckDeadUni("a3",0x0327) { - deadAsc("¸") ; Cedilla, tot - DeadKey := "a3" - } else if (Ebene = 4) and !CheckDeadUni("a4",0x0307) { - deadUni(0x02D9) ; Punkt oben - DeadKey := "a4" - } else if (Ebene = 5) and !CheckDeadUni("a5",0x0328) { - deadUni(0x02DB) ; Ogonek - DeadKey := "a5" - } else if (Ebene = 6) and !CheckDeadUni("a6",0x030A) { - deadUni(0x02DA) ; Ring oben - DeadKey := "a6" - } CompKey := PriorCompKey + if (Ebene = 1) and !CheckDeadUni("a1",0x0301) + deadAsc("{´}{space}", "a1") ; Akut, tot + else if (Ebene = 2) and !CheckDeadUni("a2",0x0300) + deadAsc("``{space}", "a2") ; Gravis, tot + else if (Ebene = 3) and !CheckDeadUni("a3",0x0327) + deadAsc("¸", "a3") ; Cedilla, tot + else if (Ebene = 4) and !CheckDeadUni("a4",0x0307) + deadUni(0x02D9, "a4") ; Punkt oben + else if (Ebene = 5) and !CheckDeadUni("a5",0x0328) + deadUni(0x02DB, "a5") ; Ogonek + else if (Ebene = 6) and !CheckDeadUni("a6",0x030A) + deadUni(0x02DA, "a6") ; Ring oben + CompKey := PriorCompKey return @@ -1044,8 +1019,8 @@ return neo_x: EbeneAktualisieren() - if (Ebene12 or CheckCompUni12("G","",0x039D)) - OutputChar("x","X") + if (Ebene12 and !CheckCompUni12("G","",0x039D)) + OutputChar12("x","X") else if (Ebene = 3) SendUnicodeChar(0x2026) ; Ellipse horizontal else if (Ebene = 4) @@ -1060,7 +1035,7 @@ return neo_v: EbeneAktualisieren() if (Ebene12 and !(CheckDeadUni12("c6",0x1E7F,0x1E7E))) - OutputChar("v","V") + OutputChar12("v","V") else if (Ebene = 3) send {blind}_ else if (Ebene = 4) and (!lernModus or lernModus_neo_Backspace) @@ -1081,7 +1056,7 @@ neo_l: or CheckDeadUni12("t4",0x0142,0x0141) or CheckCompUni("f",0xFB02) or CheckCompUni("F",0xFB04))) - OutputChar("l","L") + OutputChar12("l","L") else if (Ebene = 3) send {blind}[ else if (Ebene = 4) @@ -1101,7 +1076,7 @@ neo_c: or CheckDeadUni12("c1",0x0109,0x0108) or CheckDeadUni12("c2",0x010D,0x010C) or CheckCompAsc("o","©"))) - OutputChar("c","C") + OutputChar12("c","C") else if (Ebene = 3) send {blind}] else if (Ebene = 4) @@ -1116,7 +1091,7 @@ return neo_w: EbeneAktualisieren() if (Ebene12 and !(CheckDeadUni12("c1",0x0175,0x0174))) - OutputChar("w","W") + OutputChar12("w","W") else if (Ebene = 3) SendUnicodeChar(0x005E) ; Zirkumflex else if (Ebene = 4) @@ -1132,11 +1107,11 @@ neo_k: if (Ebene12 and !(CheckDeadUni12("a3",0x0137,0x0136) or CheckDeadUni12("c6",0x1E33,0x1E32) or CheckCompUni12("G","",0x039A))) - OutputChar("k","K") + OutputChar12("k","K") else if (Ebene = 3) - send {blind}{!} + OutputChar("{!}") else if (Ebene = 4) - Send ¡ + OutputChar("¡") else if (Ebene = 5) SendUnicodeChar(0x03F0) ; kappa symbol (varkappa) else if (Ebene = 6) @@ -1150,7 +1125,7 @@ neo_h: or CheckDeadUni12("c5",0x0127,0x0126) or CheckDeadUni12("c6",0x1E25,0x1E24) or CheckCompUni12("G","",0x0397))) - OutputChar("h","H") + OutputChar12("h","H") else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2264))) ; kleiner gleich send {blind}< else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2077) @@ -1168,7 +1143,7 @@ neo_g: or CheckDeadUni12("a4",0x0121,0x0120) or CheckDeadUni12("c1",0x011D,0x011C) or CheckDeadUni12("c3",0x011F,0x011E))) - OutputChar("g","G") + OutputChar12("g","G") else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2265))) ; größer gleich send {blind}> else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2078) @@ -1185,7 +1160,7 @@ neo_f: if (Ebene12 and !(CheckDeadUni12("a4",0x1E1F,0x1E1E) or CheckDeadUni12("t4",0x0192,0x0191) or CheckCompUni("f",0xFB00))) - OutputChar("f","F") + OutputChar12("f","F") else if ((Ebene = 3) and !(CheckDeadUni("a6",0x2257) ; ring equal to or CheckDeadUni("c1",0x2259) ; entspricht or CheckDeadUni("c2",0x225A) ; EQUIANGULAR TO @@ -1205,7 +1180,7 @@ return neo_q: EbeneAktualisieren() if (Ebene12) - OutputChar("q","Q") + OutputChar12("q","Q") else if (Ebene = 3) send {blind}{&} else if ((Ebene = 4) and !(CheckDeadUni("c1",0x207A) @@ -1221,7 +1196,7 @@ neo_sz: EbeneAktualisieren() if (Ebene = 1) if LangSTastatur - outputChar("s","") + OutputChar("s") else send ß else if (Ebene = 2) SendUnicodeChar(0x1E9E) ; versal-ß @@ -1229,8 +1204,7 @@ neo_sz: if LangSTastatur send ß else { - if !checkComp("lang_s") - SendUnicodeChar(0x017F) ; langes s + SendUnicodeChar(0x017F) ; langes s } else if (Ebene = 5) SendUnicodeChar(0x03C2) ; varsigma else if (Ebene = 6) @@ -1241,26 +1215,18 @@ return neo_tot3: noCaps = 1 EbeneAktualisieren() - if (Ebene = 1) and !CheckDeadUni("t1",0x0303) { - deadUni(0x02DC) ; Tilde, tot - DeadKey := "t1" - } else if (Ebene = 2) and !CheckDeadUni("t2",0x0304) { - deadUni(0x00AF) ; Macron, tot - DeadKey := "t2" - } else if (Ebene = 3) and !CheckDeadUni("t3",0x0308) { - deadUni(0x00A8) ; Diärese - DeadKey := "t3" - } else if (Ebene = 4) and !CheckDeadUni("t4",0x0337) { - deadUni(0x002F) ; Schrägstrich, tot - DeadKey := "t4" - } else if (Ebene = 5) and !CheckDeadUni("t5",0x030B) { - deadUni(0x02DD) ; Doppelakut - DeadKey := "t5" - } else if (Ebene = 6) and !CheckDeadUni("t6",0x0326) { - deadUni(0x02CF) ; Komma drunter, tot - DeadKey := "t6" - } - + if (Ebene = 1) and !CheckDeadUni("t1",0x0303) + deadUni(0x02DC, "t1") ; Tilde, tot + else if (Ebene = 2) and !CheckDeadUni("t2",0x0304) + deadUni(0x00AF, "t2") ; Macron, tot + else if (Ebene = 3) and !CheckDeadUni("t3",0x0308) + deadUni(0x00A8, "t3") ; Diärese + else if (Ebene = 4) and !CheckDeadUni("t4",0x0337) + deadUni(0x002F, "t4") ; Schrägstrich, tot + else if (Ebene = 5) and !CheckDeadUni("t5",0x030B) + deadUni(0x02DD, "t5") ; Doppelakut + else if (Ebene = 6) and !CheckDeadUni("t6",0x0326) + deadUni(0x02CF, "t6") ; Komma drunter, tot return @@ -1283,7 +1249,7 @@ neo_u: or CheckDeadUni12("t2",0x016B,0x016A) or CheckDeadAsc12("t3","ü","Ü") or CheckDeadUni12("t5",0x0171,0x0170))) - OutputChar("u","U") + OutputChar12("u","U") else if (Ebene = 3) send {blind}\ else if (Ebene = 4) @@ -1310,7 +1276,7 @@ neo_i: or CheckCompUni("f",0xFB01) or CheckCompUni("F",0xFB03) or CheckCompUni12("G","",0x0399))) - OutputChar("i","I") + OutputChar12("i","I") else if (Ebene = 3) send {blind}`/ else if (Ebene = 4) @@ -1334,7 +1300,7 @@ neo_a: or CheckDeadUni12("t2",0x0101,0x0100) or CheckDeadAsc12("t3","ä","Ä") or CheckCompUni12("G","",0x0391))) - OutputChar("a","A") + OutputChar12("a","A") else if (Ebene = 3) send {blind}{{} else if (Ebene = 4) @@ -1363,7 +1329,7 @@ neo_e: or CheckCompAsc12("O","Œ","Œ") or CheckCompUni12("G","",0x0395) or CheckCompUni12("E","",0x018F))) - OutputChar("e","E") + OutputChar12("e","E") else if (Ebene = 3) send {blind}{}} else if (Ebene = 4) @@ -1388,7 +1354,7 @@ neo_o: or CheckDeadUni12("t4",0x00F8,0x00D8) or CheckDeadUni12("t5",0x0151,0x0150) or CheckCompUni12("G","",0x039F))) - OutputChar("o","O") + OutputChar12("o","O") else if (Ebene = 3) send {blind}* else if (Ebene = 4) @@ -1406,16 +1372,14 @@ neo_s: or CheckDeadUni12("a4",0x1E61,0x1E60) or CheckDeadUni12("c1",0x015D,0x015C) or CheckDeadUni12("c2",0x0161,0x0160) - or CheckDeadUni12("c6",0x1E63,0x1A62))) - { - if LangSTastatur and (Ebene = 1) { - if !checkComp("lang_s") - SendUnicodeChar(0x017F) ; langes s - } else outputChar("s","S") - } else if (Ebene = 3) - send {blind}? + or CheckDeadUni12("c6",0x1E63,0x1A62))) { + if LangSTastatur and (Ebene = 1) + SendUnicodeChar(0x017F) ; langes s + else OutputChar12("s","S") + } else if (Ebene = 3) + OutputChar("?") else if (Ebene = 4) - Send ¿ + OutputChar("¿") else if (Ebene = 5) SendUnicodeChar(0x03C3) ;sigma else if (Ebene = 6) @@ -1430,7 +1394,7 @@ neo_n: or CheckDeadUni12("c2",0x0148,0x0147) or CheckDeadUni12("t1",0x00F1,0x00D1) or CheckCompUni12("G","",0x039D))) - OutputChar("n","N") + OutputChar12("n","N") else if (Ebene = 3) send {blind}( else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2074) @@ -1451,7 +1415,7 @@ neo_r: or CheckDeadUni12("c6",0x1E5B,0x1E5A) or CheckCompAsc12("o","®","®") or CheckCompAsc12("O","®","®"))) - OutputChar("r","R") + OutputChar12("r","R") else if (Ebene = 3) send {blind}) else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2075) @@ -1470,10 +1434,11 @@ neo_t: or CheckDeadUni12("c2",0x0165,0x0164) or CheckDeadUni12("c5",0x0167,0x0166) or CheckDeadUni12("c6",0x1E6D,0x1E6C) - or CheckCompUni("lang_s",0xFB05) + or CheckDeadUni("t3",0x1E97) + or CheckCompUni("0x017F",0xFB05) or CheckCompUni("s",0xFB06) or CheckCompUni12("G","",0x03A4))) - OutputChar("t","T") + OutputChar12("t","T") else if (Ebene = 3) send {blind}- ; Bisstrich else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2076) @@ -1492,7 +1457,7 @@ neo_d: or CheckDeadUni12("c5",0x0111,0x0110) or CheckDeadUni12("c6",0x1E0D,0x1E0C) or CheckDeadUni12("t4",0x00F0,0x00D0))) - OutputChar("d","D") + OutputChar12("d","D") else if (Ebene = 3) send {blind}: else if (Ebene = 4) @@ -1509,7 +1474,7 @@ neo_y: or CheckDeadUni12("c1",0x0177,0x0176) or CheckDeadAsc12("t3","ÿ","Ÿ") or CheckCompUni12("G","",0x03A5))) - OutputChar("y","Y") + OutputChar12("y","Y") else if (Ebene = 3) send {blind}@ else if (Ebene = 4) @@ -1532,7 +1497,7 @@ neo_ or CheckDeadUni12("a2",0x01DC,0x01DB) or CheckDeadUni12("c2",0x01DA,0x01D9) or CheckDeadUni12("t2",0x01D6,0x01D5))) - OutputChar("ü","Ü") + OutputChar12("ü","Ü") else if (Ebene = 3) send {#} else if (Ebene = 4) @@ -1547,7 +1512,7 @@ return neo_ö: EbeneAktualisieren() if (Ebene12 and !(CheckDeadUni12("t2",0x022B,0x022A))) - OutputChar("ö","Ö") + OutputChar12("ö","Ö") else if (Ebene = 3) send {blind}$ else if (Ebene = 4) @@ -1562,7 +1527,7 @@ return neo_ä: EbeneAktualisieren() if (Ebene12 and !(CheckDeadUni12("t2",0x01DF,0x01DE))) - OutputChar("ä","Ä") + OutputChar12("ä","Ä") else if (Ebene = 3) send {blind}| else if (Ebene = 4) @@ -1577,7 +1542,7 @@ neo_p: EbeneAktualisieren() if (Ebene12 and !(CheckDeadUni12("a4",0x1E57,0x1E56) or CheckCompUni12("G","",0x03A1))) - OutputChar("p","P") + OutputChar12("p","P") else if ((Ebene = 3) and !(CheckDeadUni("t1",0x2248))) send {blind}~ else if (Ebene = 4) @@ -1597,7 +1562,7 @@ neo_z: or CheckCompUni("d",0x01C6) or CheckCompUni12("D",0x01C5,0x01C4) or CheckCompUni12("G","",0x0396))) - OutputChar("z","Z") + OutputChar12("z","Z") else if (Ebene = 3) send ``{space} ; untot else if (Ebene = 4) { ; leer @@ -1613,7 +1578,7 @@ neo_b: EbeneAktualisieren() if (Ebene12 and !(CheckDeadUni12("a4",0x1E03,0x1E02) or CheckCompUni12("G","",0x0392))) - OutputChar("b","B") + OutputChar12("b","B") else if (Ebene = 3) if isMod2Locked send {blind}{Shift Up}{+} @@ -1633,7 +1598,7 @@ neo_m: or CheckCompUni12("t",0x2122,0x2122) ; TM or CheckCompUni12("s",0x2120,0x2120) ; SM or CheckCompUni12("G","",0x039C))) - OutputChar("m","M") + OutputChar12("m","M") else if (Ebene = 3) send {blind}`% else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B9) @@ -1692,7 +1657,7 @@ neo_j: or CheckCompUni("n",0x01CC) ; nj or CheckCompUni12("L",0x01C8,0x01C7) ; Lj/LJ or CheckCompUni12("N",0x01CB,0x01CA))) ; Nj/NJ - OutputChar("j","J") + OutputChar12("j","J") else if (Ebene = 3) send {blind}`; else if (Ebene = 4) @@ -1765,10 +1730,9 @@ return neo_Numpad7: EbeneAktualisieren() - if (Ebene = 1) { - send {blind}{Numpad7} - checkComp(7) - } else if (Ebene = 2) + if (Ebene = 1) + OutputChar("{Numpad7}") + else if (Ebene = 2) SendUnicodeChar(0x2020) ; Kreuz else if (Ebene = 3) SendUnicodeChar(0x2195) ; Hoch-Runter-Pfeil @@ -1778,13 +1742,12 @@ return neo_Numpad8: EbeneAktualisieren() - if ((Ebene = 1) and !(CheckCompUni("1",0x215B) ; 1/8 - or CheckCompUni("3",0x215C) ; 3/8 - or CheckCompUni("5",0x215D) ; 5/8 - or CheckCompUni("7",0x215E))) { ; 7/8 - send {blind}{Numpad8} - checkComp(8) - } else if (Ebene = 2) + if ((Ebene = 1) and !(CheckCompUni("{Numpad1}",0x215B) ; 1/8 + or CheckCompUni("{Numpad3}",0x215C) ; 3/8 + or CheckCompUni("{Numpad5}",0x215D) ; 5/8 + or CheckCompUni("{Numpad7}",0x215E))) ; 7/8 + OutputChar("{Numpad8}") + else if (Ebene = 2) SendUnicodeChar(0x2229) ; Durchschnitt else if (Ebene = 3) SendUnicodeChar(0x2191) ; Hochpfeil @@ -1794,10 +1757,9 @@ return neo_Numpad9: EbeneAktualisieren() - if (Ebene = 1) { - send {blind}{Numpad9} - checkComp(9) - } else if (Ebene = 2) + if (Ebene = 1) + OutputChar("{Numpad9}") + else if (Ebene = 2) SendUnicodeChar(0x2297) ; Tensorprodukt / Vektor in die Ebene zeigend else if (Ebene = 3) SendUnicodeChar(0x220D) ; Kleines umgekehrtes Elementzeichen @@ -1807,11 +1769,10 @@ return neo_Numpad4: EbeneAktualisieren() - if ((Ebene = 1) and !(CheckCompUni("1",0x00BC) ; 1/4 - or CheckCompUni("3",0x00BE))) { ; 3/4 - send {blind}{Numpad4} - checkComp(4) - } else if (Ebene = 2) + if ((Ebene = 1) and !(CheckCompUni("{Numpad1}",0x00BC) ; 1/4 + or CheckCompUni("{Numpad3}",0x00BE))) ; 3/4 + OutputChar("{Numpad4}") + else if (Ebene = 2) SendUnicodeChar(0x2282) ; Teilmenge else if (Ebene = 3) SendUnicodeChar(0x2190) ; Linkspfeil @@ -1821,13 +1782,12 @@ return neo_Numpad5: EbeneAktualisieren() - if ((Ebene = 1) and !(CheckCompUni("1",0x2155) ; 1/5 - or CheckCompUni("2",0x2156) ; 2/5 - or CheckCompUni("3",0x2157) ; 3/5 - or CheckCompUni("4",0x2158))) { ; 4/5 - send {blind}{Numpad5} - checkComp(5) - } else if (Ebene = 2) + if ((Ebene = 1) and !(CheckCompUni("{Numpad1}",0x2155) ; 1/5 + or CheckCompUni("{Numpad2}",0x2156) ; 2/5 + or CheckCompUni("{Numpad3}",0x2157) ; 3/5 + or CheckCompUni("{Numpad4}",0x2158))) ; 4/5 + OutputChar("{Numpad5}") + else if (Ebene = 2) SendUnicodeChar(0x20AC) ; Euro else if (Ebene = 3) SendUnicodeChar(0x221E) ; Unendlich @@ -1837,11 +1797,10 @@ return neo_Numpad6: EbeneAktualisieren() - if ((Ebene = 1) and !(CheckCompUni("1",0x2159) ; 1/6 - or CheckCompUni("5",0x215a))) { ; 5/6 - send {blind}{Numpad6} - checkComp(6) - } else if (Ebene = 2) + if ((Ebene = 1) and !(CheckCompUni("{Numpad1}",0x2159) ; 1/6 + or CheckCompUni("{Numpad5}",0x215a))) ; 5/6 + OutputChar("{Numpad6}") + else if (Ebene = 2) SendUnicodeChar(0x2283) ; Obermenge else if (Ebene = 3) SendUnicodeChar(0x2192) ; Rechtspfeil @@ -1852,8 +1811,7 @@ return neo_Numpad1: EbeneAktualisieren() if (Ebene = 1) { - send {blind}{Numpad1} - checkComp(1) + OutputChar("{Numpad1}") } else if (Ebene = 2) SendUnicodeChar(0x2714) ; Häkchen else if (Ebene = 3) @@ -1864,10 +1822,11 @@ return neo_Numpad2: EbeneAktualisieren() - if ((Ebene = 1) and !(CheckCompUni("1",0x00BD))) { ; 1/2 - send {blind}{Numpad2} - checkComp(2) - } else if (Ebene = 2) + if ((Ebene = 1) and !(CheckCompUni("{Numpad1}",0x00BD) ; 1/2 + or CheckCompUni("{!}",0x203C) ; DOUBLE EXCLAMATION MARK + or CheckCompUni("?",0x2047))) ; DOUBLE QUESTION MARK + OutputChar("{Numpad2}") + else if (Ebene = 2) SendUnicodeChar(0x222A) ; Vereinigung else if (Ebene = 3) SendUnicodeChar(0x2192) ; Untenpfeil @@ -1877,11 +1836,10 @@ return neo_Numpad3: EbeneAktualisieren() - if ((Ebene = 1) and !(CheckCompUni("1",0x2153) ; 1/3 - or CheckCompUni("5",0x2154))) { ; 2/3 - send {blind}{Numpad3} - checkComp(2) - } else if (Ebene = 2) + if ((Ebene = 1) and !(CheckCompUni("{Numpad1}",0x2153) ; 1/3 + or CheckCompUni("{Numpad5}",0x2154))) ; 2/3 + OutputChar("{Numpad3}") + else if (Ebene = 2) SendUnicodeChar(0x2718) ; Kreuzchen else if (Ebene = 3) SendUnicodeChar(0x2192) ; Rechtspfeil @@ -1891,10 +1849,9 @@ return neo_Numpad0: EbeneAktualisieren() - if (Ebene = 1) { - send {blind}{Numpad0} - checkComp(0) - } else if (Ebene = 2) + if (Ebene = 1) + OutputChar("{Numpad0}") + else if (Ebene = 2) SendUnicodeChar(0x2030) ; Promille else if (Ebene = 3) SendUnicodeChar(0x0025) ; Prozent @@ -2160,16 +2117,18 @@ InsertIntegerLED(pInteger, ByRef pDest, pOffset = 0, pSize = 4) { Loop %pSize% ; Copy each byte in the integer into the structure as raw binary data. DllCall("RtlFillMemory", "UInt", &pDest + pOffset + A_Index-1, "UInt", 1, "UChar", pInteger >> 8*(A_Index-1) & 0xFF) } -deadAsc(val) { +deadAsc(val, a) { global if !DeadSilence send % val + DeadKey := a } -deadUni(val) { +deadUni(val, a) { global if !DeadSilence SendUnicodeChar(val) + DeadKey := a } undeadAsc(val) { @@ -2232,7 +2191,10 @@ CheckDeadUni12(d,val1,val2) { CheckCompAsc(d,val) { global if (PriorCompKey == d) { + if !DeadCompose + send {bs} send % val + isSecondCompKey = 0 return 1 } } @@ -2241,10 +2203,16 @@ CheckCompAsc12(d,val1,val2) { global if (PriorCompKey == d) if (Ebene = 1) and (val1 != "") { + if !DeadCompose + send {bs} send % val1 + isSecondCompKey = 0 return 1 } else if (Ebene = 2) and (val2 != "") { + if !DeadCompose + send {bs} send % val2 + isSecondCompKey = 0 return 1 } } @@ -2252,7 +2220,11 @@ CheckCompAsc12(d,val1,val2) { CheckCompUni(d,val) { global if (PriorCompKey == d) { + PriorCompKey = + if !DeadCompose + send {bs} SendUnicodeChar(val) + isSecondCompKey = 0 return 1 } } @@ -2261,10 +2233,18 @@ CheckCompUni12(d,val1,val2){ global if (PriorCompKey == d) { if (Ebene = 1) and (val1 != "") { + PriorCompKey = + if !DeadCompose + send {bs} SendUnicodeChar(val1) + isSecondCompKey = 0 return 1 } else if (Ebene = 2) and (val2 != "") { + PriorCompKey = + if !DeadCompose + send {bs} SendUnicodeChar(val2) + isSecondCompKey = 0 return 1 } } @@ -2273,7 +2253,11 @@ CheckCompUni12(d,val1,val2){ CheckComp3Uni(d,val) { global if (PriorCompKey == d) { + PriorCompKey = + if !DeadCompose + send {bs}{bs} SendUnicodeChar(val) + isSecondCompKey = 0 return 1 } } @@ -2282,31 +2266,54 @@ CheckComp3Uni12(d,val1,val2) { global if (PriorCompKey == d) { if (Ebene = 1) and (val1 != "") { + PriorCompKey = + if !DeadCompose + send {bs}{bs} SendUnicodeChar(val1) + isSecondCompKey = 0 return 1 } else if (Ebene = 2) and (val2 != "") { + PriorCompKey = + if !DeadCompose + send {bs}{bs} SendUnicodeChar(val2) + isSecondCompKey = 0 return 1 } } } -outputChar(val1,val2) { +OutputChar(val) { + global + if !((CheckComp(val) or PriorCompKey) and DeadCompose) + send % "{blind}" . val +} + +OutputChar12(val1,val2) { global if (Ebene = 1) c := val1 else c := val2 - if !(CheckComp(c) and DeadCompose or PriorCompKey) + if !((CheckComp(c) or PriorCompKey) and DeadCompose) if GetKeyState("Shift","P") and isMod2Locked send % "{blind}{Shift Up}" . c . "{Shift Down}" else send % "{blind}" . c } -checkComp(d) { +CheckComp(d) { global if (PriorDeadKey = "comp") { CompKey := d return 1 + } else if isSecondCompKey { + isSecondCompKey = 0 + CompKey = + PriorCompKey = + ;goto neo_%lastHook% + } else if PriorCompKey { + CompKey := PriorCompKey . "_" . d + isSecondCompKey = 1 + return 1 } } /* @@ -2321,6 +2328,8 @@ Der Aufruf von SendUnicodeChar(charCode) { + global + if !((CheckComp(charCode) or PriorCompKey) and DeadCompose) IfWinActive,ahk_class gdkWindowToplevel { StringLower,charCode,charCode -- cgit v1.2.3