def __init__(self, isconfig=False):
# self.__gobject_init__()
+ self.init_done=False
+
self.size=(0,0)
self.isconfig=isconfig
self.draw_pending=False
+ self.mode=None
+
def do_realize(self, config):
self.config=config
return(ret)
def setMode(self, mode):
+ if self.mode==mode:
+ print "same mode"
+ return
+
self.mode=mode
if not isinstance(self, gtk.Widget):
return
+ do_draw=False
+
try:
v=self.get_property('is-on-current-desktop')
if v:
- self.queue_draw()
+ do_draw=True
else:
self.draw_pending=True
except TypeError:
- self.queue_draw()
+ do_draw=True
+
+ if do_draw:
+ #self.queue_draw()
+ self.angle_timer_start=time.time()
+ gobject.timeout_add(20, self.timerAngle)
+
+ def timerAngle(self):
+ self.queue_draw()
+
+ if self.angle_timer_start==0:
+ self.angle_timer_start=time.time()
+
+ dt=time.time()-self.angle_timer_start
+
+ da=90.0*dt/0.5
+
+ if self.mode=='l':
+ angle=90-da
+ else:
+ angle=da
+
+ if angle>=90:
+ angle=90
+ ret=False
+ elif angle<0:
+ angle=0
+ ret=False
+ else:
+ ret=True
+
+ self.setAngle(angle)
+
+ if ret==False:
+ self.angle_timer_start=0
+
+ return(ret)
def iconAt(self, x, y):
""" Get icon at coordinates x,y. X and Y are in pixels """
continue
ico=self.icons.get(x,y)
- ico.draw(cr, x2, y2, self.mode)
+ ico.draw(cr, x2, y2)
+
+ def setAngle(self, angle):
+ for x,y in self.icons:
+ ic=self.icons.get(x,y)
+ ic.setAngle(angle)
def do_expose_event(self, event):
cr=self.window.cairo_create()
cr.clip()
+ if not self.init_done:
+ self.icons.setWindow(self.window)
+ self.init_done=True
+
self._draw(cr, event)
def setLastIcon(self, icon):