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 __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()
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)
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)