Multiple instance support.
[drlaunch] / src / icon.py
index 335f6e4..c1a8096 100755 (executable)
@@ -36,21 +36,21 @@ import launcher
 from xdg.IconTheme import getIconPath
 
 
-import config
+#import config
 import apps
 
-def getIcon(name):
-    ico=getIconPath(name, config.iconsize)
-    ret=gtk.gdk.pixbuf_new_from_file_at_size(ico, config.iconsize,
-       config.iconsize)
+def getIcon(name, iconsize):
+    ico=getIconPath(name, iconsize)
+    ret=gtk.gdk.pixbuf_new_from_file_at_size(ico, iconsize, iconsize)
 
     return(ret)
 
 class Icon(gobject.GObject):
-    def __init__(self, isconfig):
+    def __init__(self, isconfig, config):
        self.__gobject_init__()
 
        self.isconfig=isconfig
+       self.config=config
 
        self.name=None
        self.icon=None
@@ -82,7 +82,7 @@ class Icon(gobject.GObject):
        self.invalidate()
 
     def getSize(self):
-       return(config.iconsize+config.iconspace)
+       return(self.config.iconsize+self.config.iconspace)
 
     def draw(self, cr, x, y, mode):
        self.x=x
@@ -95,19 +95,22 @@ class Icon(gobject.GObject):
        cr.set_source_rgba(0.1, 0.1, 0.1, 1)
        cr.set_line_width(5)
 
-       if self.ispressed:
+       #if self.ispressed:
+       if self.timePressed() <= self.presstime or self.ispressed:
            t=1.0 * min(self.timePressed(), self.presstime) / self.presstime
            g=0.3+0.5*t
            b=0.3+0.7*t
            cr.set_source_rgba(0, g, b, 0.7)
+           print "t:", t
+
        else:
            cr.set_source_rgba(0.3, 0.3, 0.3, 0.7)
 
-       x3=x + (config.iconspace/6)
-       y3=y + (config.iconspace/6)
+       x3=x + (self.config.iconspace/6)
+       y3=y + (self.config.iconspace/6)
 
        r=10    # Radius
-       w=config.iconsize+(config.iconspace*2/3)
+       w=self.config.iconsize+(self.config.iconspace*2/3)
 
        cr.move_to(x3+r, y3)
        cr.arc(x3+w-r,  y3+r,   r,          pi*1.5, pi*2)
@@ -132,8 +135,8 @@ class Icon(gobject.GObject):
            icon2=icon.rotate_simple(gdk.PIXBUF_ROTATE_COUNTERCLOCKWISE)
 
        cr.save()
-       x3=x + (config.iconspace/2)
-       y3=y + (config.iconspace/2)
+       x3=x + (self.config.iconspace/2)
+       y3=y + (self.config.iconspace/2)
        cr.set_source_pixbuf(icon2, x3, y3)
        cr.paint()
        cr.restore()
@@ -141,8 +144,10 @@ class Icon(gobject.GObject):
        return(False)
 
     def timerPressed(self):
-       if not self.ispressed:
-           return(False)
+#      if not self.ispressed:
+#          return(False)
+
+       print "timerPressed"
 
        self.invalidate()
 
@@ -190,7 +195,7 @@ class Icon(gobject.GObject):
        if window==None:
            return
 
-       w=config.iconsize + config.iconspace
+       w=self.config.iconsize + self.config.iconspace
        rect=gdk.Rectangle(self.x, self.y, w, w)
        gdk.Window.invalidate_rect(window, rect, True)