Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2012-02-05 18:10:06 (GMT)
committer Walter Bender <walter.bender@gmail.com>2012-02-05 18:10:06 (GMT)
commitdc760739648a526a879155ca0fdb8ea01dcedaec (patch)
tree39d765900c1b593c60e6a4272b819a076952cb8a
parent5eba494f032e6618dad08412f446d28b0f42081d (diff)
added gradient
-rw-r--r--yupana.py47
1 files changed, 42 insertions, 5 deletions
diff --git a/yupana.py b/yupana.py
index 0729a34..93c5d10 100644
--- a/yupana.py
+++ b/yupana.py
@@ -260,11 +260,19 @@ class Yupana():
self._fill = color
self._svg_width = self._dot_size
self._svg_height = self._dot_size
- pixbuf = svg_str_to_pixbuf(
- self._header() + \
- self._circle(self._dot_size / 2., self._dot_size / 2.,
- self._dot_size / 2.) + \
- self._footer())
+ if color in ['#FFFFFF', '#000000']:
+ pixbuf = svg_str_to_pixbuf(
+ self._header() + \
+ self._circle(self._dot_size / 2., self._dot_size / 2.,
+ self._dot_size / 2.) + \
+ self._footer())
+ else:
+ pixbuf = svg_str_to_pixbuf(
+ self._header() + \
+ self._def(self._dot_size) + \
+ self._gradient(self._dot_size / 2., self._dot_size / 2.,
+ self._dot_size / 2.) + \
+ self._footer())
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32,
self._svg_width, self._svg_height)
@@ -332,6 +340,35 @@ class Yupana():
str(self._stroke) + ';" r="' + str(r - 0.5) + '" cx="' + \
str(cx) + '" cy="' + str(cy) + '" />\n'
+ def _gradient(self, r, cx, cy):
+ return '<circle style="fill:url(#linearGradient3761);' + \
+ 'fill-opacity:1;stroke:none;" r="' + str(r - 0.5) + '" cx="' + \
+ str(cx) + '" cy="' + str(cy) + '" />\n'
+
+ def _def(self, r):
+ return ' <defs>\
+ <linearGradient\
+ id="linearGradient3755">\
+ <stop\
+ id="stop3757"\
+ style="stop-color:%s;stop-opacity:1"\
+ offset="0" />\
+ <stop\
+ id="stop3759"\
+ style="stop-color:%s;stop-opacity:1"\
+ offset="1" />\
+ </linearGradient>\
+ <linearGradient\
+ x1="0"\
+ y1="0"\
+ x2="%f"\
+ y2="%f"\
+ id="linearGradient3761"\
+ xlink:href="#linearGradient3755"\
+ gradientUnits="userSpaceOnUse" />\
+ </defs>\
+' % (self._fill, '#000000', r, r)
+
def _footer(self):
return '</svg>\n'