def __init__(self, **kwargs): self._attribute = None super(Color, self).__init__(**kwargs) self.widget_set_by_program = False self.color_obj_set_by_program = False self.register_signal('color_changed') self.scale_factor = float(kwargs.get('scale_factor', 255)) self.color = ColorObj() self.setup_widgets(**kwargs) self.color.bind(hsv=self.on_color_obj_changed) self.Property = kwargs.get('Property')
class Color(BaseObject, PropertyConnector): color_keys = { 'red': 'red_float', 'green': 'green_float', 'blue': 'blue_float' } hsv_keys = ['hue', 'sat', 'val'] def __init__(self, **kwargs): self._attribute = None super(Color, self).__init__(**kwargs) self.widget_set_by_program = False self.color_obj_set_by_program = False self.register_signal('color_changed') self.scale_factor = float(kwargs.get('scale_factor', 255)) self.color = ColorObj() self.setup_widgets(**kwargs) self.color.bind(hsv=self.on_color_obj_changed) self.Property = kwargs.get('Property') def unlink(self): super(Color, self).unlink() self.Property = None def attach_Property(self, prop): super(Color, self).attach_Property(prop) self.set_color_obj(**prop.value) self.update_widget_color(**prop.value) def on_widget_update(self, *args, **kwargs): if self.widget_set_by_program: return hsv = self.get_widget_color() #self.color.hsv = dict(zip(self.hsv_keys, hsv)) d = dict(zip(self.hsv_keys, hsv)) self.set_Property_value(d) self.set_color_obj(**d) #if self.Property: # self.Property.set_hsv(**self.color.hsv) #self.emit('color_changed', color=self.color, obj=self) def update_widget_color(self, **kwargs): #self.color.hsv = kwargs #hsv = self.color.hsv_seq #print self.color.hsv hsv = [kwargs[key] for key in self.hsv_keys] if True: #hsv != self.get_widget_color(): self.widget_set_by_program = True self.set_widget_color(hsv) self.widget_set_by_program = False def on_Property_value_changed(self, **kwargs): value = kwargs.get('value') self.set_color_obj(**value) self.update_widget_color(**value) def set_color_obj(self, **kwargs): self.color_obj_set_by_program = True self.color.hsv = kwargs self.color_obj_set_by_program = False def on_color_obj_changed(self, **kwargs): if self.color_obj_set_by_program: return self.set_Property_value(self.color.hsv)
class Color(BaseObject, PropertyConnector): color_keys = {'red':'red_float', 'green':'green_float', 'blue':'blue_float'} hsv_keys = ['hue', 'sat', 'val'] def __init__(self, **kwargs): self._attribute = None super(Color, self).__init__(**kwargs) self.widget_set_by_program = False self.color_obj_set_by_program = False self.register_signal('color_changed') self.scale_factor = float(kwargs.get('scale_factor', 255)) self.color = ColorObj() self.setup_widgets(**kwargs) self.color.bind(hsv=self.on_color_obj_changed) self.Property = kwargs.get('Property') def unlink(self): super(Color, self).unlink() self.Property = None def attach_Property(self, prop): super(Color, self).attach_Property(prop) self.set_color_obj(**prop.value) self.update_widget_color(**prop.value) def on_widget_update(self, *args, **kwargs): if self.widget_set_by_program: return hsv = self.get_widget_color() #self.color.hsv = dict(zip(self.hsv_keys, hsv)) d = dict(zip(self.hsv_keys, hsv)) self.set_Property_value(d) self.set_color_obj(**d) #if self.Property: # self.Property.set_hsv(**self.color.hsv) #self.emit('color_changed', color=self.color, obj=self) def update_widget_color(self, **kwargs): #self.color.hsv = kwargs #hsv = self.color.hsv_seq #print self.color.hsv hsv = [kwargs[key] for key in self.hsv_keys] if True:#hsv != self.get_widget_color(): self.widget_set_by_program = True self.set_widget_color(hsv) self.widget_set_by_program = False def on_Property_value_changed(self, **kwargs): value = kwargs.get('value') self.set_color_obj(**value) self.update_widget_color(**value) def set_color_obj(self, **kwargs): self.color_obj_set_by_program = True self.color.hsv = kwargs self.color_obj_set_by_program = False def on_color_obj_changed(self, **kwargs): if self.color_obj_set_by_program: return self.set_Property_value(self.color.hsv)