All pastes #384191 Raw Edit

Something

public text v1 · immutable
·published 2007-03-06 21:53 UTC
rendered paste body
Index: scripts/notification.py
===================================================================
RCS file: /cvsroot/urk/urk/scripts/notification.py,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 notification.py
--- scripts/notification.py	17 May 2006 23:16:54 -0000	1.6
+++ scripts/notification.py	6 Mar 2007 21:51:17 -0000
@@ -7,24 +7,20 @@ import ui
 ui.gtk
 
 try:
-    import egg.trayicon
+    from gtk import StatusIcon as TrayIcon
 except:
-    print "The 'egg' module is not available. This just means the tray icon won't work. This is normal if you don't have gnome-python-extras, and you can still use urk normally."
+    print "You need PyGtk 2.10 or above for the tray icon support."
+    print "Tray icon support will be disabled, but you can still use urk normally."
     raise #still raise an exception so the script isn't loaded
 
 class urktray:
     def __init__(self):
         self.tray = None
-        self.tip = None
         self.urgent_window = None
 
-    def clicked(self, widget, event):
+    def clicked(self, widget):
         windows.manager.set_active(self.urgent_window)
-        try:
-            # since gtk 2.8...
-            windows.manager.present_with_time(event.time)
-        except:
-            windows.manager.present()
+        windows.manager.present()
 
     def window_hilighted(self, window, source):
         # if we are looking at the window already do not show the tray...
@@ -32,36 +28,26 @@ class urktray:
             return
 
         if not self.tray:
-            image = gtk.Image()
-            (w, h) = gtk.icon_size_lookup(gtk.ICON_SIZE_SMALL_TOOLBAR)
-            pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(urk.path("urk_icon.svg"), w, h)
-            image.set_from_pixbuf(pixbuf)
-            evbox = gtk.EventBox()
-            evbox.set_visible_window(False)
-            evbox.connect('button-press-event', self.clicked)
-            evbox.add(image)
-            self.tray = egg.trayicon.TrayIcon("Urk")
-            self.tray.add(evbox)
-            self.tip = gtk.Tooltips()
+            self.tray = TrayIcon()
+            self.tray.set_from_file(urk.path("urk_icon.svg"))
+            self.tray.connect('activate', self.clicked)
 
-        self.tip.set_tip (self.tray, "%s (%s)" % (source, window.get_title()))
+        self.tray.set_tooltip ("%s (%s)" % (source, window.get_title()))
         self.urgent_window = window
-        self.tray.show_all()
+        self.tray.props.visible = True
 
     def window_activated(self, window):
         if window == self.urgent_window:
             self.urgent_window = None
-            self.tray.hide()
+            self.tray.props.visible = False
 
     def remove(self):
         if self.tray:
-            self.tray.destroy()
+            self.tray.props.visible = False
             self.tray = None
-            self.tip = None
         self.urgent_window = None
 
 
-
 tray = urktray()
 
 def setdownHighlight(e):