Esempio n. 1
0
def input_string(msg=[], pattern="^[a-zA-Z0-9]$", default="", spell=True):
    voice.menu(msg)
    s = default
    while True:
        e = pygame.event.poll()
        if e.type == QUIT:
            sys.exit()
        elif e.type == KEYDOWN:
            pygame.event.clear()
            if e.key in [K_LSHIFT, K_RSHIFT]:
                continue
            if e.key in (K_RETURN, K_KP_ENTER):
                voice.item([s])
                return s
            elif e.key == K_ESCAPE:
                return None
            elif e.key == K_BACKSPACE:
                s = s[:-1]
                voice.item(string_to_msg(s, spell))
            elif re.match(pattern, e.unicode) != None:
                try:
                    c = e.unicode.encode("ascii") # telnetlib doesn't like unicode
                    s += c
                    voice.item(string_to_msg(c) + [9999] + string_to_msg(s, spell))
                except:
                    warning("error reading character from keyboard")
                    voice.item([1003, 9999] + string_to_msg(s, spell))
            else:
                voice.item([1003, 9999] + string_to_msg(s, spell))
        elif e.type == USEREVENT:
            voice.update()
        voice.update() # XXX useful for SAPI
Esempio n. 2
0
def input_string(msg=[], pattern="^[a-zA-Z0-9]$", default="", spell=True):
    voice.menu(msg)
    s = default
    while True:
        e = pygame.event.poll()
        if e.type == QUIT:
            sys.exit()
        elif e.type == KEYDOWN:
            pygame.event.clear()
            if e.key in [K_LSHIFT, K_RSHIFT]:
                continue
            if e.key in (K_RETURN, K_KP_ENTER):
                voice.item([s])
                return s
            elif e.key == K_ESCAPE:
                return None
            elif e.key == K_BACKSPACE:
                s = s[:-1]
                voice.item(string_to_msg(s, spell))
            elif re.match(pattern, e.unicode) != None:
                try:
                    c = e.unicode.encode("ascii") # telnetlib doesn't like unicode
                    s += c
                    voice.item(string_to_msg(c) + [9999] + string_to_msg(s, spell))
                except:
                    warning("error reading character from keyboard")
                    voice.item([1003, 9999] + string_to_msg(s, spell))
            else:
                voice.item([1003, 9999] + string_to_msg(s, spell))
        elif e.type == USEREVENT:
            voice.update()
        voice.update() # XXX useful for SAPI
Esempio n. 3
0
 def _try_to_get_choice(self, e):
     if e.type == QUIT:
         sys.exit()
     if e.type == USEREVENT:
         voice.update()
     elif e.type == KEYDOWN:
         self._process_keydown(e)
     voice.update() # XXX useful for SAPI
Esempio n. 4
0
 def _try_to_get_choice(self, e):
     if e.type == QUIT:
         sys.exit()
     if e.type == USEREVENT:
         voice.update()
     elif e.type == KEYDOWN:
         self._process_keydown(e)
     voice.update() # XXX useful for SAPI
Esempio n. 5
0
 def loop(self):
     self.end_loop = False
     while not self.end_loop:
         self._process_available_server_lines()  # to avoid empty menus
         self.step()
         if self.auto:
             if self.auto[0].run(self):
                 del self.auto[0]
         voice.update()  # for voice.info()
         time.sleep(.01)
Esempio n. 6
0
 def loop(self):
     debug("%s loop...", self.__class__.__name__)
     self.end_loop = False
     while not self.end_loop:
         self.server_is_done = False
         while not self.server_is_done: # avoid menus with no choices
             self._process_server()
             if self.end_loop:
                 debug("break loop because end_loop")
                 break # when "quit" is received
         self.step()
         voice.update() # for voice.info()
         time.sleep(.01)
     debug("...end %s loop", self.__class__.__name__)
Esempio n. 7
0
 def loop(self):
     debug("%s loop...", self.__class__.__name__)
     self.end_loop = False
     while not self.end_loop:
         self.server_is_done = False
         while not self.server_is_done:  # avoid menus with no choices
             self._process_server()
             if self.end_loop:
                 debug("break loop because end_loop")
                 break  # when "quit" is received
         self.step()
         voice.update()  # for voice.info()
         time.sleep(.01)
     debug("...end %s loop", self.__class__.__name__)