Changeset 355:214cd900a1d2
- Timestamp:
- 03/25/10 14:51:35 (3 years ago)
- Branch:
- default
- Convert:
- svn:76c98907-0e80-4c83-94c7-b346fc2aefc2/trunk@361
- File:
-
- 1 edited
-
avango-display/python/avango/display/_device.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
avango-display/python/avango/display/_device.py
r351 r355 56 56 KeyF11 = avango.SFBool() 57 57 KeyF12 = avango.SFBool() 58 59 Key0 = avango.SFBool() 60 Key1 = avango.SFBool() 61 Key2 = avango.SFBool() 62 Key3 = avango.SFBool() 63 Key4 = avango.SFBool() 64 Key5 = avango.SFBool() 65 Key6 = avango.SFBool() 66 Key7 = avango.SFBool() 67 Key8 = avango.SFBool() 68 Key9 = avango.SFBool() 69 70 KeyX = avango.SFBool() 71 KeyZ = avango.SFBool() 72 73 KeyBackslash = avango.SFBool() 74 KeyCloseBracket = avango.SFBool() 58 75 59 76 def __init__(self): 60 77 self.super(KeyboardDevice).__init__() 61 78 79 self.__prev_keys_pressed = [] 80 81 self.__keymap = {} 82 83 self.__keymap[48] = self.Key1 84 self.__keymap[49] = self.Key1 85 self.__keymap[50] = self.Key2 86 self.__keymap[51] = self.Key3 87 self.__keymap[52] = self.Key4 88 self.__keymap[53] = self.Key5 89 self.__keymap[54] = self.Key6 90 self.__keymap[55] = self.Key7 91 self.__keymap[56] = self.Key8 92 self.__keymap[57] = self.Key9 93 94 self.__keymap[120] = self.KeyX 95 self.__keymap[122] = self.KeyZ 96 97 self.__keymap[92] = self.KeyBackslash 98 self.__keymap[41] = self.KeyCloseBracket 99 100 def add_key(self,name,id): 101 """ 102 Add a SFBool, which will be connected to the key press with the given id 103 The naming convention says that you should pass Key<Name> as name parameter. 104 E.g.: If you want to add the key <1> call add_key("Key1",48) 105 """ 106 107 #if a field with the given name is already known, no new field will be added 108 field = self._get_field(name) 109 if field: 110 return False 111 112 self.add_and_init_field(avango.SFBool(), name, id) 113 self.__keymap[id] = getattr(self, name) 114 self.__keymap[id].value = False 115 116 return True 117 118 def evaluate(self): 119 120 pressed_keys = [] 121 for k in self.KeysPressed.value: 122 pressed_keys.append(k) 123 124 #pressed keys 125 for key in pressed_keys: 126 if key in self.__keymap: 127 self.__keymap[key].value = True 128 129 #release keys 130 released_keys=filter(lambda x:x not in pressed_keys, self.__prev_keys_pressed) 131 for key in released_keys: 132 if key in self.__keymap: 133 self.__keymap[key].value = False 134 135 self.__prev_keys_pressed = pressed_keys 136 137 62 138 def connect(self, eventfields): 63 139
Note: See TracChangeset
for help on using the changeset viewer.
