Lightningbeam/GUI/Cocoa/Color.py

53 lines
1.4 KiB
Python

#
# Python GUI - Colors - PyObjC
#
from AppKit import NSColor, NSCalibratedRGBColorSpace
from GUI import export
from GUI.GColors import Color as GColor
NSColor.setIgnoresAlpha_(False)
class Color(GColor):
def _from_ns_color(cls, ns_color):
color = cls.__new__(cls)
color._ns_color = ns_color.colorUsingColorSpaceName_(
NSCalibratedRGBColorSpace)
return color
_from_ns_color = classmethod(_from_ns_color)
def __init__(self, red, green, blue, alpha = 1.0, image = False, im = ''):
self.image = image
if image:
# self._ns_color = NSColor.colorWithPatternImage_(im._ns_image)
self._ns_color = im._ns_image
else:
self._ns_color = NSColor.colorWithCalibratedRed_green_blue_alpha_(
red, green, blue, alpha)
def get_red(self):
return self._ns_color.redComponent()
def get_green(self):
return self._ns_color.greenComponent()
def get_blue(self):
return self._ns_color.blueComponent()
def get_alpha(self):
return self._ns_color.alphaComponent()
def get_rgb(self):
return self.get_rgba()[:3]
def get_rgba(self):
m = self._ns_color.getRed_green_blue_alpha_
try:
return m()
except TypeError:
return m(None, None, None, None)
export(Color)