예제 #1
0
    def add_selector(self,
                     title,
                     values,
                     onchange,
                     onreturn,
                     default=0,
                     **kwargs):
        """
        Add a selector to menu: several options with values and two functions
        that execute when changing the selector (left/right) and pressing
        return button on the element.

        Values of the selector are like:
            values = [('Item1', a, b, c...), ('Item2', a, b, c..)]

        And functions onchange and onreturn does
            onchange(a, b, c..., **kwargs)
            onreturn(a, b, c..., **kwargs)

        :param title: Title of the selector
        :param values: Values of the selector [('Item1', var1..), ('Item2'...)]
        :param default: Index of default value to display
        :param onchange: Function when changing the selector
        :param onreturn: Function when pressing return button
        :param kwargs: Aditional parameters
        :type title: basestring
        :type values: list
        :type onchange: function, NoneType
        :type onreturn: function, NoneType
        :type default: int
        :return: Selector ID
        :rtype: int
        """
        # Check value list
        for vl in values:
            assert len(vl) > 1, \
                'Length of each element in value list must be greater than 1'
            assert isinstance(vl[0], str), \
                'First element of value list component must be a string'

        self._actual._option.append([
            _locals.PYGAMEMENU_TYPE_SELECTOR,
            _Selector(title,
                      values,
                      onchange=onchange,
                      onreturn=onreturn,
                      default=default,
                      **kwargs)
        ])
        selector_id = self._actual._size
        self._actual._size += 1
        if self._actual._size > 1:
            dy = -self._actual._fsize / 2 - self._actual._opt_dy / 2
            self._actual._opt_posy += dy
        return selector_id
예제 #2
0
    def add_selector(self, title, values, onchange, onreturn, default=0,
                     **kwargs):

        # Check value list
        for vl in values:
            assert len(vl) > 1, \
                'Length of each element in value list must be greater than 1'
            assert isinstance(vl[0], str), \
                'First element of value list component must be a string'

        self._actual._option.append(
            [_locals.PYGAMEMENU_TYPE_SELECTOR,
             _Selector(title, values, onchange=onchange, onreturn=onreturn,
                       default=default,
                       **kwargs)])
        selector_id = self._actual._size
        self._actual._size += 1
        if self._actual._size > 1:
            dy = -self._actual._fsize / 2 - self._actual._opt_dy / 2
            self._actual._opt_posy += dy
        return selector_id