47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
#
|
|
# Python GUI - Colors - Generic
|
|
#
|
|
|
|
from GUI.Properties import overridable_property
|
|
|
|
class Color(object):
|
|
"""A drawing color.
|
|
|
|
Constructors:
|
|
rgb(red, green, blue, alpha = 1.0)
|
|
where red, green, blue, alpha are in the range 0.0 to 1.0
|
|
|
|
Properties:
|
|
red --> float
|
|
green --> float
|
|
blue --> float
|
|
rgb --> (red, green, blue)
|
|
rgba --> (red, green, blue, alpha)
|
|
"""
|
|
|
|
red = overridable_property('red', "Red component (0.0 to 1.0)")
|
|
green = overridable_property('green', "Blue component (0.0 to 1.0)")
|
|
blue = overridable_property('blue', "Blue component (0.0 to 1.0)")
|
|
alpha = overridable_property('alpha', "Alpha (opacity) component")
|
|
rgb = overridable_property('rgb', "Tuple of (red, green, blue) (0.0 to 1.0)")
|
|
rgba = overridable_property('rgba',
|
|
"Tuple of (red, green, blue, alpha) (0.0 to 1.0)")
|
|
|
|
def get_alpha(self):
|
|
return 1.0
|
|
|
|
def get_rgb(self):
|
|
return (self.red, self.green, self.blue)
|
|
|
|
def set_rgb(self, x):
|
|
self.red, self.green, self.blue = x
|
|
|
|
def get_rgba(self):
|
|
return (self.red, self.green, self.blue, self.alpha)
|
|
|
|
def set_rgba(self, x):
|
|
self.red, self.green, self.blue, self.alpha = x
|
|
|
|
def __str__(self):
|
|
return "Color(%g,%g,%g,%g)" % self.rgba
|