Пример #1
0
 def __init__(self,
              length,
              limvals=None,
              text="",
              elements=None,
              normal_params=None):
     self._height = None
     self._drag_element = DraggerY(self)
     super(SliderY, self).__init__(length, limvals, text, elements,
                                   normal_params)
     self._drag_element.finish()
     self.add_elements(list([self._drag_element]))
     Ghost.fit_children(self)
Пример #2
0
 def __init__(self,
              length,
              limvals=None,
              text="",
              elements=None,
              normal_params=None):
     self._height = None
     self._drag_element = DraggerY(self)
     super(SliderY, self).__init__(length, limvals, text, elements,
                                   normal_params)
     self._drag_element.finish()
     self.add_elements(list([self._drag_element]))
     self.englobe_childrens()
Пример #3
0
class SliderY(_GraphicalSlider):

    def __init__(self,
                 length,
                 limvals=None,
                 text="",
                 elements=None,
                 normal_params=None):
        self._height = None
        self._drag_element = DraggerY(self)
        super(SliderY, self).__init__(length, limvals, text, elements,
                                      normal_params)
        self._drag_element.finish()
        self.add_elements(list([self._drag_element]))
        Ghost.fit_children(self)

    def finish(self):
        Element.finish(self)
        self._drag_element.set_center((self.get_fus_center()[0], None))
        self.misc_refresh()

    def misc_refresh(self):
        self._refresh_shift()

    def _get_slide_rect(self):
        slide_rect = Rect((0, 0), (self._height, self._length))
        slide_rect.center = self.get_fus_rect().center
        return slide_rect

    def get_value(self):
        y0 = self._get_slide_rect().y
        val = self.pix_to_val(self._drag_element.get_fus_center()[1], y0)
        if val < self.limvals[0]:
            return self.limvals[0]
        elif val > self.limvals[1]:
            return self.limvals[1]
        else:
            return val

    def get_factor(self):
        value = self.get_value()
        return 1. - (self.limvals[1] - value) / self.limvals[1]

    def _add_buttons(self, size=None):
        _GraphicalSlider._add_buttons(self, size)
        rect = self.get_fus_rect()
        pos = (rect.centerx, rect.bottom + style.SLIDER_MARGINS[1] + size[1]/2)
        self._minus.set_center(pos)
        pos = (rect.centerx, rect.top - style.SLIDER_MARGINS[1] - size[1]/2)
        self._plus.set_center(pos)
        Ghost.fit_children(self)
        self._add_buttons_reactions()

    def _add_buttons_reactions(self):
        pass

    def _get_theo_size(self, buttonsize, dragsize, length, margins=None,
                       surplus=False):
        """Returns the theoretical future total size of self. The reason for
        this method to exist is that it provides a way to guess the size before
        the graphical parts are created by calling self.finish().
        <surplus> : get only the size surplus due to buttons.
        """
        margins = style.SLIDER_MARGINS[0] if margins is None else margins
        w = max(buttonsize[0], dragsize[0])
        actual_length = length + dragsize[1] + 2 * margins
        if buttonsize[0] != 0:  # (0, 0) button size means no buttons
            buttons_growth = 2 * buttonsize[1] + 2 * margins
        else:
            buttons_growth = 0
        h = actual_length + buttons_growth
        if surplus:
            h -= length
        return (w, h)
Пример #4
0
class SliderY(_GraphicalSlider):

    def __init__(self,
                 length,
                 limvals=None,
                 text="",
                 elements=None,
                 normal_params=None):
        self._height = None
        self._drag_element = DraggerY(self)
        super(SliderY, self).__init__(length, limvals, text, elements,
                                      normal_params)
        self._drag_element.finish()
        self.add_elements(list([self._drag_element]))
        self.englobe_childrens()

    def finish(self):
        Element.finish(self)
        self._drag_element.set_center((self.get_fus_center()[0], None))
        self.misc_refresh()

    def misc_refresh(self):
        self._refresh_shift()

    def _get_slide_rect(self):
        slide_rect = Rect((0, 0), (self._height, self._length))
        slide_rect.center = self.get_fus_rect().center
        return slide_rect

    def get_value(self):
        y0 = self._get_slide_rect().y
        val = self.pix_to_val(self._drag_element.get_fus_center()[1], y0)
        if val < self._limvals[0]:
            return self._limvals[0]
        elif val > self._limvals[1]:
            return self._limvals[1]
        else:
            return val

    def get_factor(self):
        value = self.get_value()
        return 1. - (self._limvals[1] - value) / self._limvals[1]

    def _add_buttons(self, size=None):
        _GraphicalSlider._add_buttons(self, size)
        rect = self.get_fus_rect()
        pos = (rect.centerx, rect.bottom + style.SLIDER_MARGINS[1] + size[1]/2)
        self._minus.set_center(pos)
        pos = (rect.centerx, rect.top - style.SLIDER_MARGINS[1] - size[1]/2)
        self._plus.set_center(pos)
        self.englobe_childrens()
        self._add_buttons_reactions()

    def _add_buttons_reactions(self):
        pass

    def _get_theo_size(self, buttonsize, dragsize, length, margins=None,
                       surplus=False):
        """Returns the theoretical future total size of self. The reason for
        this method to exist is that it provides a way to guess the size before
        the graphical parts are created by calling self.finish().
        <surplus> : get only the size surplus due to buttons.
        """
        margins = style.SLIDER_MARGINS[0] if margins is None else margins
        w = max(buttonsize[0], dragsize[0])
        actual_length = length + dragsize[1] + 2 * margins
        if buttonsize[0] != 0:  # (0, 0) button size means no buttons
            buttons_growth = 2 * buttonsize[1] + 2 * margins
        else:
            buttons_growth = 0
        h = actual_length + buttons_growth
        if surplus:
            h -= length
        return (w, h)