keys support case
parent
e5a668b691
commit
7b7486cc93
|
|
@ -1,7 +1,35 @@
|
||||||
package key
|
package key
|
||||||
|
|
||||||
|
import "os"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
charToKey = map[byte]Key{
|
charToKey = map[byte]Key{
|
||||||
|
'A': AUpper,
|
||||||
|
'B': BUpper,
|
||||||
|
'C': CUpper,
|
||||||
|
'D': DUpper,
|
||||||
|
'E': EUpper,
|
||||||
|
'F': FUpper,
|
||||||
|
'G': GUpper,
|
||||||
|
'H': HUpper,
|
||||||
|
'I': IUpper,
|
||||||
|
'J': JUpper,
|
||||||
|
'K': KUpper,
|
||||||
|
'L': LUpper,
|
||||||
|
'M': MUpper,
|
||||||
|
'N': NUpper,
|
||||||
|
'O': OUpper,
|
||||||
|
'P': PUpper,
|
||||||
|
'Q': QUpper,
|
||||||
|
'R': RUpper,
|
||||||
|
'S': SUpper,
|
||||||
|
'T': TUpper,
|
||||||
|
'U': UUpper,
|
||||||
|
'V': VUpper,
|
||||||
|
'W': WUpper,
|
||||||
|
'X': XUpper,
|
||||||
|
'Y': YUpper,
|
||||||
|
'Z': ZUpper,
|
||||||
'a': A,
|
'a': A,
|
||||||
'b': B,
|
'b': B,
|
||||||
'c': C,
|
'c': C,
|
||||||
|
|
@ -56,8 +84,10 @@ func ToChar(k Key) byte {
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var caseSensitive = os.Getenv("CASE_SENSITIVE") != "true"
|
||||||
|
|
||||||
func FromChar(b byte) Key {
|
func FromChar(b byte) Key {
|
||||||
if 'A' <= b && b <= 'Z' {
|
if !caseSensitive && 'A' <= b && b <= 'Z' {
|
||||||
b += 'a' - 'A'
|
b += 'a' - 'A'
|
||||||
}
|
}
|
||||||
v, ok := charToKey[b]
|
v, ok := charToKey[b]
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package key
|
||||||
import "testing"
|
import "testing"
|
||||||
|
|
||||||
func TestFromChar(t *testing.T) {
|
func TestFromChar(t *testing.T) {
|
||||||
|
caseSensitive = false
|
||||||
if got := FromChar('1'); got != N1 {
|
if got := FromChar('1'); got != N1 {
|
||||||
t.Error(got)
|
t.Error(got)
|
||||||
}
|
}
|
||||||
|
|
@ -21,4 +22,11 @@ func TestFromChar(t *testing.T) {
|
||||||
if got := ToChar(-1); got != '?' {
|
if got := ToChar(-1); got != '?' {
|
||||||
t.Error(got)
|
t.Error(got)
|
||||||
}
|
}
|
||||||
|
caseSensitive = true
|
||||||
|
if got := FromChar('a'); got != A {
|
||||||
|
t.Error(got)
|
||||||
|
}
|
||||||
|
if got := FromChar('A'); got != AUpper {
|
||||||
|
t.Error(got)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,45 +1,69 @@
|
||||||
package key
|
package key
|
||||||
|
|
||||||
import "github.com/micmonay/keybd_event"
|
|
||||||
|
|
||||||
type Key int
|
type Key int
|
||||||
|
|
||||||
const (
|
const (
|
||||||
Undef = Key(keybd_event.VK_SP11)
|
Undef = iota
|
||||||
A = Key(keybd_event.VK_A)
|
A
|
||||||
B = Key(keybd_event.VK_B)
|
B
|
||||||
C = Key(keybd_event.VK_C)
|
C
|
||||||
D = Key(keybd_event.VK_D)
|
D
|
||||||
E = Key(keybd_event.VK_E)
|
E
|
||||||
F = Key(keybd_event.VK_F)
|
F
|
||||||
G = Key(keybd_event.VK_G)
|
G
|
||||||
H = Key(keybd_event.VK_H)
|
H
|
||||||
I = Key(keybd_event.VK_I)
|
I
|
||||||
J = Key(keybd_event.VK_J)
|
J
|
||||||
K = Key(keybd_event.VK_K)
|
K
|
||||||
L = Key(keybd_event.VK_L)
|
L
|
||||||
M = Key(keybd_event.VK_M)
|
M
|
||||||
N = Key(keybd_event.VK_N)
|
N
|
||||||
O = Key(keybd_event.VK_O)
|
O
|
||||||
P = Key(keybd_event.VK_P)
|
P
|
||||||
Q = Key(keybd_event.VK_Q)
|
Q
|
||||||
R = Key(keybd_event.VK_R)
|
R
|
||||||
S = Key(keybd_event.VK_S)
|
S
|
||||||
T = Key(keybd_event.VK_T)
|
T
|
||||||
U = Key(keybd_event.VK_U)
|
U
|
||||||
V = Key(keybd_event.VK_V)
|
V
|
||||||
W = Key(keybd_event.VK_W)
|
W
|
||||||
X = Key(keybd_event.VK_X)
|
X
|
||||||
Y = Key(keybd_event.VK_Y)
|
Y
|
||||||
Z = Key(keybd_event.VK_Z)
|
Z
|
||||||
N1 = Key(keybd_event.VK_1)
|
AUpper
|
||||||
N2 = Key(keybd_event.VK_2)
|
BUpper
|
||||||
N3 = Key(keybd_event.VK_3)
|
CUpper
|
||||||
N4 = Key(keybd_event.VK_4)
|
DUpper
|
||||||
N5 = Key(keybd_event.VK_5)
|
EUpper
|
||||||
N6 = Key(keybd_event.VK_6)
|
FUpper
|
||||||
N7 = Key(keybd_event.VK_7)
|
GUpper
|
||||||
N8 = Key(keybd_event.VK_8)
|
HUpper
|
||||||
N9 = Key(keybd_event.VK_9)
|
IUpper
|
||||||
N0 = Key(keybd_event.VK_0)
|
JUpper
|
||||||
|
KUpper
|
||||||
|
LUpper
|
||||||
|
MUpper
|
||||||
|
NUpper
|
||||||
|
OUpper
|
||||||
|
PUpper
|
||||||
|
QUpper
|
||||||
|
RUpper
|
||||||
|
SUpper
|
||||||
|
TUpper
|
||||||
|
UUpper
|
||||||
|
VUpper
|
||||||
|
WUpper
|
||||||
|
XUpper
|
||||||
|
YUpper
|
||||||
|
ZUpper
|
||||||
|
N1
|
||||||
|
N2
|
||||||
|
N3
|
||||||
|
N4
|
||||||
|
N5
|
||||||
|
N6
|
||||||
|
N7
|
||||||
|
N8
|
||||||
|
N9
|
||||||
|
N0
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue