summaryrefslogtreecommitdiff
path: root/windows/ahk-auslaufend/Source/Methods-Other.ahk
diff options
context:
space:
mode:
Diffstat (limited to 'windows/ahk-auslaufend/Source/Methods-Other.ahk')
-rw-r--r--windows/ahk-auslaufend/Source/Methods-Other.ahk186
1 files changed, 186 insertions, 0 deletions
diff --git a/windows/ahk-auslaufend/Source/Methods-Other.ahk b/windows/ahk-auslaufend/Source/Methods-Other.ahk
new file mode 100644
index 0000000..ab1d86b
--- /dev/null
+++ b/windows/ahk-auslaufend/Source/Methods-Other.ahk
@@ -0,0 +1,186 @@
+deadAsc(val1, val2, a) {
+ global
+ if !DeadSilence
+ OutputChar(val1, val2)
+ else CheckComp(val2)
+ DeadKey := a
+}
+
+deadUni(val1, val2, a) {
+ global
+ if !DeadSilence
+ SendUnicodeChar(val1, val2)
+ else CheckComp(val2)
+ DeadKey := a
+}
+
+undeadAsc(val) {
+ global
+ if DeadSilence
+ send % val
+ else
+ send % "{bs}" . val
+}
+
+undeadUni(val){
+ global
+ if !DeadSilence
+ send {bs}
+ SendUnicodeChar(val, "")
+}
+
+CheckDeadAsc(d,val) {
+ global
+ if (PriorDeadKey == d) {
+ undeadAsc(val)
+ return 1
+ }
+}
+
+CheckDeadUni(d,val) {
+ global
+ if (PriorDeadKey == d) {
+ undeadUni(val)
+ return 1
+ }
+}
+
+CheckDeadAsc12(d,val1,val2) {
+ global
+ if (PriorDeadKey == d){
+ if (Ebene = 1) and (val1 != "") {
+ undeadAsc(val1)
+ return 1
+ } else if (Ebene = 2) and (val2 != "") {
+ undeadAsc(val2)
+ return 1
+ }
+ }
+}
+
+CheckDeadUni12(d,val1,val2) {
+ global
+ if(PriorDeadKey == d) {
+ if (Ebene = 1) and (val1 != "") {
+ undeadUni(val1)
+ return 1
+ } else if (Ebene = 2) and (val2 != "") {
+ undeadUni(val2)
+ return 1
+ }
+ }
+}
+
+CheckCompUni(d,val) {
+ global
+ if (CompKey == d) {
+ PriorCompKey =
+ CompKey =
+ if !DeadCompose
+ send {bs}
+ isFurtherCompkey = 0
+ SendUnicodeChar(val, "")
+ return 1
+ }
+}
+
+OutputChar(val1,val2) {
+ global
+ if (!CheckComp(val2))
+ send % "{blind}" . val1
+}
+
+OutputChar12(val1,val2,val3,val4) {
+ global
+ if (Ebene = 1)
+ c := val1
+ else c := val2
+ if (Ebene = 1)
+ d := val3
+ else d := val4
+ if (!CheckComp(d))
+ if GetKeyState("Shift","P") and isMod2Locked
+ send % "{blind}{Shift Up}" . c . "{Shift Down}"
+ else send % "{blind}" . c
+}
+
+;Folgende Funktion prüft, ob das eben geschriebene Zeichen eine gültige Coko
+;fortsetzen KÖNNTE – falls ja, wird 1 zurückgegeben (die Eingabe soll blind erfolgen),
+;andernfalls wird 0 zurückgegeben (das Zeichen soll ausgegeben werden).
+
+CheckComp(d) {
+ global
+ if (PriorDeadKey = "comp") {
+ CompKey := "<" . d . ">"
+ PriorDeadKey := DeadKey =
+ CheckCompose()
+ TryThirdCompKey = 0
+ return 1
+ } else if TryFourthCompKey {
+ TryFourthCompKey = 0
+ CompKey := ThreeCompKeys . " " . "<" . d . ">"
+ ThreeCompKeys =
+ CheckCompose()
+ if !(CompKey) {
+ send {left}{bs}{right}
+ return 1
+ } else CompKey =
+ } else if TryThirdCompKey {
+ TryThirdCompKey = 0
+ CompKey := PriorCompKey . " " . "<" . d . ">"
+ CheckCompose()
+ if CompKey {
+ TryFourthCompKey = 1
+ ThreeCompKeys := CompKey
+ CompKey =
+ } else return 1
+ } else if PriorCompKey {
+ CompKey := PriorCompKey . " " . "<" . d . ">"
+ CheckCompose()
+ if CompKey
+ TryThirdCompKey = 1
+ return 1
+ }
+}
+
+CumulateDeadKey(a) {
+ if DeadKey = a5
+ { if a = g1
+ DeadKey = a5g1
+ else if a = a1
+ DeadKey = a5a1
+ else if a = a2
+ DeadKey = a5a2
+ else if a = g1a2
+ DeadKey = a5g1a2
+ else if a = a1a2
+ DeadKey = a5a1a2
+ else if a = c1a2
+ DeadKey = a5c1a2
+ } else if DeadKey = g5
+ { if a = g1
+ DeadKey = g5g1
+ else if a = a1
+ DeadKey = g5a1
+ else if a = a2
+ DeadKey = g5a2
+ else if a = g1a2
+ DeadKey = g5g1a2
+ else if a = a1a2
+ DeadKey = g5a1a2
+ else if a = c1a2
+ DeadKey = g5c1a2
+ } else if DeadKey = g1
+ { if a = a5
+ DeadKey = a5g1
+ else if a = g5
+ DeadKey = g5g1
+ else if a = a2
+ DeadKey = g1a2
+ else if a = a5a2
+ DeadKey = a5g1a2
+ else if a = g5a2
+ DeadKey = g5g1a2
+ }
+}
+