diff options
Diffstat (limited to 'speak/eye.py')
-rw-r--r-- | speak/eye.py | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/speak/eye.py b/speak/eye.py index 7996d9d..1fe23f5 100644 --- a/speak/eye.py +++ b/speak/eye.py @@ -7,8 +7,8 @@ # # Parts of Speak.activity are based on code from Measure.activity # Copyright (C) 2007 Arjun Sarwal - arjun@laptop.org -# -# Speak.activity is free software: you can redistribute it and/or modify +# +# Speak.activity is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. @@ -28,14 +28,13 @@ import gobject import cairo import math - class Eye(gtk.DrawingArea): def __init__(self, fill_color): gtk.DrawingArea.__init__(self) self.connect("expose_event", self.expose) self.frame = 0 self.blink = False - self.x, self.y = 0, 0 + self.x, self.y = 0,0 self.fill_color = fill_color # listen for clicks @@ -79,17 +78,17 @@ class Eye(gtk.DrawingArea): if self.x is None or self.y is None: # look ahead, but not *directly* in the middle - if a.x + a.width / 2 < self.parent.get_allocation().width / 2: + if a.x + a.width/2 < self.parent.get_allocation().width/2: cx = a.width * 0.6 else: cx = a.width * 0.4 return cx, a.height * 0.6 EYE_X, EYE_Y = self.translate_coordinates( - self.get_toplevel(), a.width / 2, a.height / 2) + self.get_toplevel(), a.width/2, a.height/2) EYE_HWIDTH = a.width EYE_HHEIGHT = a.height - BALL_DIST = EYE_HWIDTH / 4 + BALL_DIST = EYE_HWIDTH/4 dx = self.x - EYE_X dy = self.y - EYE_Y @@ -107,23 +106,23 @@ class Eye(gtk.DrawingArea): dx = dist * cosa dy = dist * sina - return a.width / 2 + dx, a.height / 2 + dy + return a.width/2 + dx, a.height/2 + dy def expose(self, widget, event): self.frame += 1 bounds = self.get_allocation() eyeSize = min(bounds.width, bounds.height) - outlineWidth = eyeSize / 20.0 - pupilSize = eyeSize / 10.0 + outlineWidth = eyeSize/20.0 + pupilSize = eyeSize/10.0 pupilX, pupilY = self.computePupil() - dX = pupilX - bounds.width / 2. - dY = pupilY - bounds.height / 2. - distance = math.sqrt(dX * dX + dY * dY) - limit = eyeSize / 2 - outlineWidth * 2 - pupilSize + dX = pupilX - bounds.width/2. + dY = pupilY - bounds.height/2. + distance = math.sqrt(dX*dX + dY*dY) + limit = eyeSize/2 - outlineWidth*2 - pupilSize if distance > limit: - pupilX = bounds.width / 2 + dX * limit / distance - pupilY = bounds.height / 2 + dY * limit / distance + pupilX = bounds.width/2 + dX*limit/distance + pupilY = bounds.height/2 + dY*limit/distance self.context = widget.window.cairo_create() #self.context.set_antialias(cairo.ANTIALIAS_NONE) @@ -134,23 +133,23 @@ class Eye(gtk.DrawingArea): # background self.context.set_source_rgba(*self.fill_color.get_rgba()) - self.context.rectangle(0, 0, bounds.width, bounds.height) + self.context.rectangle(0,0,bounds.width,bounds.height) self.context.fill() # eye ball - self.context.arc(bounds.width / 2, bounds.height / 2, eyeSize / 2 - outlineWidth / 2, 0, 360) - self.context.set_source_rgb(1, 1, 1) + self.context.arc(bounds.width/2,bounds.height/2, eyeSize/2-outlineWidth/2, 0,360) + self.context.set_source_rgb(1,1,1) self.context.fill() # outline self.context.set_line_width(outlineWidth) - self.context.arc(bounds.width / 2, bounds.height / 2, eyeSize / 2 - outlineWidth / 2, 0, 360) - self.context.set_source_rgb(0, 0, 0) + self.context.arc(bounds.width/2,bounds.height/2, eyeSize/2-outlineWidth/2, 0,360) + self.context.set_source_rgb(0,0,0) self.context.stroke() # pupil - self.context.arc(pupilX, pupilY, pupilSize, 0, 360) - self.context.set_source_rgb(0, 0, 0) + self.context.arc(pupilX,pupilY,pupilSize,0,360) + self.context.set_source_rgb(0,0,0) self.context.fill() self.blink = False |