MCPcopy Index your code
hub / github.com/rawpython/remi / EditorAttributeInputColor

Class EditorAttributeInputColor

editor/editor_widgets.py:1015–1086  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1013
1014
1015class EditorAttributeInputColor(EditorAttributeInputBase):
1016 def __init__(self, widget, attributeName, propertyDef, attributeDict, appInstance, *args, **kwargs):
1017 super(EditorAttributeInputColor, self).__init__(
1018 widget, attributeName, propertyDef, attributeDict, appInstance, *args, **kwargs)
1019 self.css_height = "60px"
1020 self.spin_red = gui.SpinBox(0, 0, 255, 1, width="100%", height="100%")
1021 self.spin_green = gui.SpinBox(
1022 0, 0, 255, 1, width="100%", height="100%")
1023 self.spin_blue = gui.SpinBox(0, 0, 255, 1, width="100%", height="100%")
1024 self.slide_red = gui.Slider(0, 0, 255, 1, width="100%", height="100%", style={
1025 'background-color': 'pink'})
1026 self.slide_green = gui.Slider(0, 0, 255, 1, width="100%", height="100%", style={
1027 'background-color': 'lightgreen'})
1028 self.slide_blue = gui.Slider(0, 0, 255, 1, width="100%", height="100%", style={
1029 'background-color': 'lightblue'})
1030 '''
1031 self.set_from_asciiart("""
1032 |del|lbl |spin_r |spin_g |spin_b |
1033 |del|lbl |slide_r |slide_g |slide_b |
1034 """)
1035 '''
1036 self.style.update({'grid-template-columns': "6% 46% 16% 16% 16%", 'grid-template-rows': "50% 50%",
1037 'grid-template-areas': "'del lbl spin_r spin_g spin_b' 'del lbl slide_r slide_g slide_b'"})
1038 self.append({'del': self.removeAttribute, 'lbl': self.label, 'spin_r': self.spin_red, 'spin_g': self.spin_green,
1039 'spin_b': self.spin_blue, 'slide_r': self.slide_red, 'slide_g': self.slide_green, 'slide_b': self.slide_blue})
1040
1041 self.slide_red.onchange.do(self.onchange)
1042 self.slide_green.onchange.do(self.onchange)
1043 self.slide_blue.onchange.do(self.onchange)
1044
1045 self.spin_red.onchange.do(self.onchange)
1046 self.spin_green.onchange.do(self.onchange)
1047 self.spin_blue.onchange.do(self.onchange)
1048
1049 def to_str(self):
1050 return "rgb(%s,%s,%s)" % (self.slide_red.get_value(), self.slide_green.get_value(), self.slide_blue.get_value())
1051
1052 def from_str(self, value_str):
1053 components = []
1054 if value_str is None or '(' not in value_str or ')' not in value_str:
1055 components = [0, 0, 0]
1056 else:
1057 components = value_str[value_str.index(
1058 '(')+1:value_str.index(')')].split(',')
1059 if len(components) < 3:
1060 components = [0, 0, 0]
1061 self.slide_red.set_value(components[0])
1062 self.slide_green.set_value(components[1])
1063 self.slide_blue.set_value(components[2])
1064
1065 self.spin_red.set_value(self.slide_red.get_value())
1066 self.spin_green.set_value(self.slide_green.get_value())
1067 self.spin_blue.set_value(self.slide_blue.get_value())
1068
1069 @gui.decorate_event
1070 def onchange(self, widget, new_value):
1071 if type(widget) == gui.SpinBox:
1072 self.slide_red.set_value(self.spin_red.get_value())

Callers 1

set_widgetMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected