~awn-extras/awn-extras/vector-effects-extras

« back to all changes in this revision

Viewing changes to src/to-do/icon.py

  • Committer: Michal Hruby
  • Date: 2008-09-29 19:42:23 UTC
  • mfrom: (877.1.13 awn-extras)
  • Revision ID: mhr3@zoznam.sk-20080929194223-c2q6qbr7attyuo8o
Merged trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
177
177
  ans = num * (size / 48.0)
178
178
  
179
179
  return ans
 
180
 
 
181
def icon2(settings, color, surface, percent):
 
182
  if surface is None:
 
183
    surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 16, 16)
 
184
    cr = cairo.Context(surface)
 
185
  else:
 
186
    cr = cairo.Context(surface)
 
187
  
 
188
  #Clear the surface
 
189
  cr.set_operator(cairo.OPERATOR_CLEAR)
 
190
  cr.paint()
 
191
  cr.set_operator(cairo.OPERATOR_OVER)
 
192
  cr.set_line_width(1)
 
193
  
 
194
  #Draw the outer circle
 
195
  cr.set_source_rgb(float(color[2][0])/255.0,float(color[2][1])/255.0,\
 
196
    float(color[2][2])/255.0)
 
197
  cr.arc(8, 8, 7, 0, 2 * pi)
 
198
  cr.stroke()
 
199
  cr.close_path()
 
200
  
 
201
  
 
202
  
 
203
  #(Probably) lightest foreground to indicate progress
 
204
  cr.set_source_rgb(float(color[0][0])/255.0,float(color[0][1])/255.0,\
 
205
    float(color[0][2])/255.0)
 
206
  #Crazy maths here
 
207
  #http://en.wikipedia.org/wiki/Radians saved my life here :)
 
208
  cr.arc(8, 8, 6,((3.0*pi)/2.0), \
 
209
    ((3.0*pi)/2.0)+2*pi*(percent/100.0))
 
210
  #cr.stroke()
 
211
  cr.line_to(8, 8)
 
212
  cr.clip()
 
213
 
 
214
  cr.close_path()
 
215
  cr.fill()
 
216
  cr.paint()
 
217
  
 
218
  #Finish the drawing
 
219
  cr.close_path()
 
220
  cr.set_line_width(1)
 
221
  cr.stroke()
 
222
  
 
223
  del cr
 
224
  return surface