github.com/jmigpin/editor@v1.6.0/driver/windriver/window_test.go (about) 1 //go:build windows 2 3 package windriver 4 5 import ( 6 "testing" 7 8 "github.com/jmigpin/editor/util/uiutil/event" 9 ) 10 11 func TestVirtualKeyLookup(t *testing.T) { 12 type pair struct { 13 vkey uint32 14 kstate *[256]byte 15 eks event.KeySym 16 ru rune 17 } 18 19 kstate0 := [256]byte{} 20 kstateShift := [256]byte{_VK_SHIFT: kstateDownBit} 21 kstateCtrl := [256]byte{_VK_CONTROL: kstateDownBit} 22 kstateCaps := [256]byte{_VK_CAPITAL: kstateToggleBit} 23 kstateAlt := [256]byte{_VK_MENU: kstateDownBit} 24 //kstateAltGr := [256]byte{_VK_SHIFT: kstateDownBit, _VK_CONTROL: kstateDownBit} 25 //kstateAltGr := [256]byte{_VK_RMENU: kstateDownBit} 26 //kstateAltGr := [256]byte{_VK_LMENU: kstateDownBit} 27 _ = kstate0 28 _ = kstateShift 29 _ = kstateCtrl 30 _ = kstateCaps 31 _ = kstateAlt 32 //_ = kstateAltGr 33 34 //kstateTest1 := [256]byte{1: 1, 144: 129} 35 //kstateTest1 := [256]byte{1: 1, 144: 1, 252: 129} 36 37 pairs := []pair{ 38 {50, &kstate0, event.KSym2, '2'}, 39 {65, &kstate0, event.KSymA, 'a'}, 40 {65, &kstateShift, event.KSymA, 'A'}, 41 {65, &kstateCaps, event.KSymA, 'A'}, 42 {32, &kstate0, event.KSymSpace, ' '}, 43 {221, &kstate0, event.KSymAcute, 'ยด'}, 44 {221, &kstateShift, event.KSymGrave, '`'}, 45 {220, &kstate0, event.KSymTilde, '~'}, 46 {220, &kstateShift, event.KSymCircumflex, '^'}, 47 48 // TODO 49 //{220, &kstateTest1, 0, '^'}, 50 //{65, &kstateCtrl, event.KSymA, 'a'}, 51 //{0x32, &kstateAltGr, event.KSymAt, '@'}, // TODO 52 //{35, &kstateShift, event.KSymGrave, '`'}, 53 } 54 _ = pairs 55 //for i := 0; i < 256; i++ { 56 //p := pair{uint32(i), &kstate0, -1, -1} 57 for _, p := range pairs { 58 ru, _ := vkeyRune(p.vkey, p.kstate) 59 eks := translateVKeyToEventKeySym(p.vkey, ru) 60 if eks != p.eks || ru != p.ru { 61 t.Logf("%v, %v, %v(%c)\n", p.vkey, eks, ru, ru) 62 t.Fail() 63 } 64 } 65 } 66 67 //----------