Exemplo n.º 1
0
    def synonyms(self, key):
        """See openexp._keyboard.legacy"""

        # Respond correctly if a keycode is passed, rather than a Unicode string
        # key description.
        if type(key) == int:
            l = [key, pyglet.window.key.symbol_string(key).lower()]
            if l[-1].upper() != l[-1].lower():
                l.append(l[-1].upper())
            return l

        # Sanity check
        if not isinstance(key, basestring):
            raise osexception( \
             'Key names should be string or numeric, not %s' % type(key))

        # Make a list of all conceivable ways that a key might be referred to.
        l = [key, key.upper()]
        if key.upper() != key.lower():
            l.append(key.lower())
        for char, name in self.keymap.items():
            if key == char:
                l.append(name)
            if key.lower() == name:
                l.append(char)
        # Make sure that we can deal with None/ timeout responses
        if key.lower() == 'none':
            l.append(None)
        # Make sure that we convert numeric strings to ints as well
        try:
            i = int(key)
            l.append(i)
        except:
            pass
        return l
Exemplo n.º 2
0
    def synonyms(self, key):

        """See openexp._keyboard.legacy"""

        # Respond correctly if a keycode is passed, rather than a Unicode string
        # key description.
        if type(key) == int:
            l = [key, pyglet.window.key.symbol_string(key).lower()]
            if l[-1].upper() != l[-1].lower():
                l.append(l[-1].upper())
            return l

            # Sanity check
        if not isinstance(key, basestring):
            raise openexp.exceptions("Key names should be string or numeric, not %s" % type(key))

            # Make a list of all conceivable ways that a key might be referred to.
        l = [key, key.upper()]
        if key.upper() != key.lower():
            l.append(key.lower())
        for char, name in self.keymap.items():
            if key == char:
                l.append(name)
            if key.lower() == name:
                l.append(char)
                # Make sure that we can deal with None/ timeout responses
        if key.lower() == "none":
            l.append(None)
            # Make sure that we convert numeric strings to ints as well
        try:
            i = int(key)
            l.append(i)
        except:
            pass
        return l
Exemplo n.º 3
0
	def synonyms(self, key):

		"""See openexp._keyboard.legacy"""

		if type(key) == int:
			l = [pyglet.window.key.symbol_string(key).lower()]
			if l[-1].upper() != l[-1].lower():
				l.append(l[-1].upper())
			return l
		if key.upper() == key.lower():
			return key
		return [key.upper(), key.lower()]
Exemplo n.º 4
0
	def synonyms(self, key):

		"""
		Gives a list of synonyms for a key, either codes or names

		Returns:
		A list of synonyms
		"""

		if type(key) == int:
			l = [pyglet.window.key.symbol_string(key).lower()]
			if l[-1].upper() != l[-1].lower():
				l.append(l[-1].upper())
			return l
		if key.upper() == key.lower():
			return key
		return [key.upper(), key.lower()]
Exemplo n.º 5
0
    def synonyms(self, key):
        """See openexp._keyboard.legacy"""

        if type(key) == int:
            l = [pyglet.window.key.symbol_string(key).lower()]
            if l[-1].upper() != l[-1].lower():
                l.append(l[-1].upper())
            return l

        l = [key.upper()]
        if key.upper() != key.lower():
            l.append(key.lower())
        for char, name in self.keymap.items():
            if key == char:
                l.append(name)
            if key.lower() == name:
                l.append(char)
        return l
Exemplo n.º 6
0
	def synonyms(self, key):

		"""See openexp._keyboard.legacy"""

		if type(key) == int:
			l = [pyglet.window.key.symbol_string(key).lower()]
			if l[-1].upper() != l[-1].lower():
				l.append(l[-1].upper())
			return l
		
		l = [key.upper()]
		if key.upper() != key.lower():
			l.append(key.lower())
		for char, name in self.keymap.items():
			if key == char:
				l.append(name)
			if key.lower() == name:
				l.append(char)												
		return l
Exemplo n.º 7
0
	def set_keylist(self, keylist=None):

		"""See openexp._keyboard.legacy"""

		if keylist == None:
			self._keylist = None
		else:
			for key in keylist:			
				if not hasattr(pyglet.window.key, key.upper()) and not \
					hasattr(pyglet.window.key, "NUM_%s" % key):
					raise openexp.exceptions.response_error( \
						"The key '%s' is not recognized by the psycho keyboard backend. Please refer to <a href='http://pyglet.org/doc/api/pyglet.window.key-module.html'>http://pyglet.org/doc/api/pyglet.window.key-module.html</a> for a list of valid keys." \
						% key)
			self._keylist = keylist
Exemplo n.º 8
0
    def set_keylist(self, keylist=None):
        """See openexp._keyboard.legacy"""

        if keylist == None:
            self._keylist = None
        else:
            _keylist = []
            for key in keylist:
                if key in self.keymap:
                    _keylist.append(self.keymap[key])
                else:
                    if not hasattr(pyglet.window.key, key.upper()) and not \
                     hasattr(pyglet.window.key, "NUM_%s" % key):
                        raise osexception( \
                         "The key '%s' is not recognized by the psycho keyboard backend. Please refer to <a href='http://pyglet.org/doc/api/pyglet.window.key-module.html'>http://pyglet.org/doc/api/pyglet.window.key-module.html</a> for a list of valid keys." \
                         % key)
                    _keylist.append(key)
            self._keylist = _keylist
Exemplo n.º 9
0
	def set_keylist(self, keylist = None):

		"""
		Sets a list of accepted keys

		Keyword arguments:
		keylist -- a list of human readable keys that are accepted or None to
				   accept all keys (default=None)
		"""

		if keylist == None:
			self._keylist = None
		else:
			for key in keylist:			
				if not hasattr(pyglet.window.key, key.upper()) and not \
					hasattr(pyglet.window.key, "NUM_%s" % key):
					raise openexp.exceptions.response_error( \
						"The key '%s' is not recognized by the psycho keyboard backend. Please refer to <a href='http://pyglet.org/doc/api/pyglet.window.key-module.html'>http://pyglet.org/doc/api/pyglet.window.key-module.html</a> for a list of valid keys." \
						% key)
			self._keylist = keylist