Bring around both colors, since multiple combinations can have
the same base color.
This commit is contained in:
+562
-563
File diff suppressed because it is too large
Load Diff
+23
-15
@@ -2,25 +2,33 @@ import random
|
||||
|
||||
from sugar.canvas import Colors
|
||||
|
||||
def is_valid(fill_color):
|
||||
return Colors.table.has_key(fill_color)
|
||||
def _parse_string(color_string):
|
||||
if color_string == 'white':
|
||||
return ['#4f4f4f', 'white']
|
||||
|
||||
splitted = color_string.split(',')
|
||||
if len(splitted) == 2:
|
||||
return [splitted[0], splitted[1]]
|
||||
else:
|
||||
return None
|
||||
|
||||
def is_valid(color_string):
|
||||
return (_parse_string(color_string) != None)
|
||||
|
||||
class IconColor:
|
||||
def __init__(self, fill_color=None):
|
||||
if fill_color == None:
|
||||
n = int(random.random() * (len(Colors.table) - 1))
|
||||
fill_color = Colors.table.keys()[n]
|
||||
def __init__(self, color_string=None):
|
||||
if color_string == None or not is_valid(color_string):
|
||||
n = int(random.random() * (len(Colors.colors) - 1))
|
||||
[self._fill, self._stroke] = Colors.colors[n]
|
||||
else:
|
||||
if fill_color[0] == '#':
|
||||
fill_color = fill_color.upper()
|
||||
else:
|
||||
fill_color = fill_color.lower()
|
||||
if not Colors.table.has_key(fill_color):
|
||||
raise RuntimeError("Specified fill color %s is not allowed." % fill_color)
|
||||
self._fill_color = fill_color
|
||||
[self._fill, self._stroke] = _parse_string(color_string)
|
||||
|
||||
def get_stroke_color(self):
|
||||
return Colors.table[self._fill_color]
|
||||
return self._stroke
|
||||
|
||||
def get_fill_color(self):
|
||||
return self._fill_color
|
||||
return self._fill
|
||||
|
||||
def to_string(self):
|
||||
return '%s,%s' % (self._fill, self._stroke)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user