def __init__( self, parent ): gui.keytest.__init__( self, parent ) #load keymaps for the gui keyboard self.key_dict = maps.get_key_dictionary(self, "UK") self.func_map_list = maps.get_func_map() #keep focus on a hidden gui field to prevent unwanted cursor movement self.setDummyFocus() #register keyboard events self.hm = pyHook.HookManager() self.hm.KeyDown = self.OnKeyboardEvent self.hm.KeyUp = self.OnKeyboardEvent self.hm.HookKeyboard() #prepare the list control self.m_list.InsertColumn(0, 'Key (Code)') self.m_list.InsertColumn(1, 'ASCII (Code)') self.m_list.InsertColumn(2, 'Scan Code') self.m_list.InsertColumn(3, 'Ext') self.m_list.InsertColumn(4, 'Window in Focus') self.m_list.InsertColumn(5, 'Event') self.m_list.InsertColumn(6, 'MAME Function') self.m_list.InsertColumn(7, 'Pinball Function') self.m_list.SetColumnWidth(0, 80) self.m_list.SetColumnWidth(1, 78) self.m_list.SetColumnWidth(2, 63) self.m_list.SetColumnWidth(3, 28) self.m_list.SetColumnWidth(4, 136) self.m_list.SetColumnWidth(5, 61) self.m_list.SetColumnWidth(6, 138) self.m_list.SetColumnWidth(7, 168) #remember the last event. We don't want to show duplicates in log self.last_event = None #use height of window to determine if activity log is being viewed self.height = self.Size[1] #set the default keyboard self.setKeyboard([False,True].index(os.path.exists("us_key")), True) #initialise the speech engine self.say()
def setKeyboard(self, keyboard, initial=False): #Set the visual keyboard. If initial then set the default country if keyboard == 0: self.m_uk.Show() self.m_us.Hide() if not initial and os.path.exists("us_key"): try: os.rmdir("us_key") except: pass else: self.m_us.Show() self.m_uk.Hide() if not initial and not os.path.exists("us_key"): try: os.mkdir("us_key") except: pass if initial: self.m_keyboard.SetSelection(keyboard) self.key_dict = maps.get_key_dictionary(self, keyboard) self.m_panel.Layout() self.setDummyFocus()