From 5d57b261eeb4f9cb70722bc4d6f95c1b1bd89d61 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Wed, 7 Feb 2007 17:34:29 +0100 Subject: [PATCH] Add a color class, not used yet --- sugar/graphics/color.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sugar/graphics/color.py diff --git a/sugar/graphics/color.py b/sugar/graphics/color.py new file mode 100644 index 00000000..fa3a8c75 --- /dev/null +++ b/sugar/graphics/color.py @@ -0,0 +1,38 @@ +_system_colors = { + 'toolbar-background' : '#414141' +} + +def _html_to_rgb(html_color): + """ #RRGGBB -> (r, g, b) tuple (in float format) """ + + html_color = html_color.strip() + if html_color[0] == '#': + html_color = html_color[1:] + if len(html_color) != 6: + raise ValueError, "input #%s is not in #RRGGBB format" % html_color + + r, g, b = html_color[:2], html_color[2:4], html_color[4:] + r, g, b = [int(n, 16) for n in (r, g, b)] + r, g, b = (r / 255.0, g / 255.0, b / 255.0) + + return (r, g, b) + +class Color(object): + RED = Color(1.0, 0.0, 0.0) + GREEN = Color(0.0, 1.0, 0.0) + BLUE = Color(0.0, 0.0, 1.0) + + def __init__(self, r, g, b, a=1.0): + self._r = r + self._g = g + self._b = b + + def to_rgb(self): + return (self._r, self._g, self._b) + +class SystemColor(Color): + TOOLBAR_BACKGROUND = SystemColor('toolbar-background') + + def __init__(self, color_id): + rgb = _html_to_rgb(_system_colors[color_id]) + Color.__init__(*rgb)