diff options
| author | pepperpepperpepper <pepper@scannerjammer.com> | 2015-09-30 00:56:49 -0700 |
|---|---|---|
| committer | pepperpepperpepper <pepper@scannerjammer.com> | 2015-09-30 00:56:49 -0700 |
| commit | 5521785e6c52dd4603699d057d62a5797844fd13 (patch) | |
| tree | 3516ba416147ebd00104f3f5fc666371432af0ae /ricky/param/color.py | |
| parent | 20a896ed6a8d54c3e59baa33ce3fce7a26343c20 (diff) | |
huge rename
Diffstat (limited to 'ricky/param/color.py')
| -rw-r--r-- | ricky/param/color.py | 30 |
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)) |
