Poodletooth-iLand/otp/speedchat/SCColorScheme.py

80 lines
2.7 KiB
Python
Raw Normal View History

2015-03-03 22:10:12 +00:00
from ColorSpace import *
class SCColorScheme:
def __init__(self, arrowColor = (0.5, 0.5, 1), rolloverColor = (0.53, 0.9, 0.53), frameColor = None, pressedColor = None, menuHolderActiveColor = None, emoteIconColor = None, textColor = (0, 0, 0), emoteIconDisabledColor = (0.5, 0.5, 0.5), textDisabledColor = (0.4, 0.4, 0.4), alpha = 0.95):
def scaleColor(color, s):
y, u, v = rgb2yuv(*color)
return yuv2rgb(y * s, u, v)
def scaleIfNone(color, srcColor, s):
if color is not None:
return color
else:
return scaleColor(srcColor, s)
return
self.__arrowColor = arrowColor
self.__rolloverColor = rolloverColor
self.__frameColor = frameColor
if self.__frameColor is None:
h, s, v = rgb2hsv(*arrowColor)
self.__frameColor = hsv2rgb(h, 0.2 * s, v)
h, s, v = rgb2hsv(*self.__frameColor)
self.__frameColor = hsv2rgb(h, 0.5 * s, v)
self.__pressedColor = scaleIfNone(pressedColor, self.__rolloverColor, 0.92)
self.__menuHolderActiveColor = scaleIfNone(menuHolderActiveColor, self.__rolloverColor, 0.84)
self.__emoteIconColor = emoteIconColor
if self.__emoteIconColor is None:
h, s, v = rgb2hsv(*self.__rolloverColor)
self.__emoteIconColor = hsv2rgb(h, 1.0, 0.8 * v)
self.__emoteIconDisabledColor = emoteIconDisabledColor
self.__textColor = textColor
self.__textDisabledColor = textDisabledColor
self.__alpha = alpha
return
def getArrowColor(self):
return self.__arrowColor
def getRolloverColor(self):
return self.__rolloverColor
def getFrameColor(self):
return self.__frameColor
def getPressedColor(self):
return self.__pressedColor
def getMenuHolderActiveColor(self):
return self.__menuHolderActiveColor
def getEmoteIconColor(self):
return self.__emoteIconColor
def getTextColor(self):
return self.__textColor
def getEmoteIconDisabledColor(self):
return self.__emoteIconDisabledColor
def getTextDisabledColor(self):
return self.__textDisabledColor
def getAlpha(self):
return self.__alpha
def __str__(self):
members = ('arrowColor', 'rolloverColor', 'frameColor', 'pressedColor', 'menuHolderActiveColor', 'emoteIconColor', 'textColor', 'emoteIconDisabledColor', 'textDisabledColor', 'alpha')
result = ''
for member in members:
result += '%s = %s' % (member, self.__dict__['_%s__%s' % (self.__class__.__name__, member)])
if member is not members[-1]:
result += '\n'
return result
def __repr__(self):
return str(self)