3
This module regesters keys and converts them to user event
4
this is how they key can be bound to other events
9
""" processes keys including mouse buttons"""
11
def __init__(self,game,keyFilename='cfg/keys.config'):
12
""" create event prosessor """
16
for n,line in enumerate(open(keyFilename)):
22
self.bound[key] = message
24
print "error in keys.txt file on line %i"%n
25
for event in self.bound.keys():
26
self.game.accept(event,self.onKey,[event])
27
letters = "abcdefghijklmnopqrstuvwxyz"
28
symbols = "1234567890-=,./[]\\;'`"
29
shifted = "!@#$%^&*()_+<>?{}|:\"~"
30
work = ['enter','backspace','space']
31
self.mouseEvents = dict.fromkeys(["mouse1", "mouse2", "mouse3"])
32
for mouseEvent in ["mouse1", "mouse2", "mouse3","mouse1-up","mouse2-up","mouse3-up"]:
33
self.game.accept(mouseEvent,self.onKey,[mouseEvent])
34
for letter in symbols+letters:
35
self.game.accept(letter,self.onKey,[letter])
36
self.game.accept('shift-'+letter,self.onKey,[letter.upper()])
38
self.game.accept(event,self.onKey,[event])
39
for index,key in enumerate(symbols):
40
self.game.accept('shift-'+key,self.onKey, [shifted[index]] )
41
self.inputKeys = dict.fromkeys(list(letters+letters.upper()+symbols+shifted)+work)
44
""" if gui is in focus give keys to that else
45
see if they are bound to action """
46
if key in ("mouse1-up","mouse2-up","mouse3-up"):
48
if key in self.mouseEvents:
49
if gui.baseMouseEvent(key):
52
if self.focus != None and key in self.inputKeys:
53
if self.focus.onKey(key):
56
messenger.send(self.bound[key])
b'\\ No newline at end of file'