summaryrefslogtreecommitdiff
path: root/ricky/param/color.py
diff options
context:
space:
mode:
authorpepperpepperpepper <pepper@scannerjammer.com>2015-09-30 00:56:49 -0700
committerpepperpepperpepper <pepper@scannerjammer.com>2015-09-30 00:56:49 -0700
commit5521785e6c52dd4603699d057d62a5797844fd13 (patch)
tree3516ba416147ebd00104f3f5fc666371432af0ae /ricky/param/color.py
parent20a896ed6a8d54c3e59baa33ce3fce7a26343c20 (diff)
huge rename
Diffstat (limited to 'ricky/param/color.py')
-rw-r--r--ricky/param/color.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/ricky/param/color.py b/ricky/param/color.py
new file mode 100644
index 0000000..8980236
--- /dev/null
+++ b/ricky/param/color.py
@@ -0,0 +1,30 @@
+from ricky.param.multiselect import MultiSelect
+import random
+class Color(MultiSelect):
+ def __init__(self, **kwargs):
+ super(Color, self).__init__(**kwargs)
+
+ @classmethod
+ def from_rgb(cls, r,g,b):
+ return cls(value="rgb({},{},{})".format(r,g,b))
+
+ @property
+ def value(self):
+ return super(MultiSelect, self).get_value()
+ @value.setter
+ def value(self, value):
+ self._value = value
+ if not self._value is None:
+ self.is_ready = 1
+ self.set_by_user = 1
+
+ def randomize(self):
+ weights_total = sum(map(lambda x: x["weight"], self.options())) + (255 * 255 * 255)
+ choice = random.randint(0, weights_total)
+ position = 0
+ for elem in self.options():
+ position += elem["weight"]
+ if position >= choice:
+ self.value = elem["value"]
+ return
+ self.value = "rgb({},{},{})".format( random.randint(0,255), random.randint(0,255), random.randint(0,255))