class HudsonNotifier: def __init__(self): dir_path = os.path.dirname(__file__) LOGO_IMG = os.path.abspath(dir_path + "/../imgs/logo.png") self.statusIcon = gtk.StatusIcon() self.statusIcon.set_from_file(LOGO_IMG) self.statusIcon.set_visible(True) self.statusIcon.set_tooltip("Hudson notifier") self.menu = gtk.Menu() # self.menuItem = gtk.ImageMenuItem(gtk.STOCK_PREFERENCES) # self.menuItem.connect('activate', self.prefs_cb, self.statusIcon) # self.menu.append(self.menuItem) self.menuItem = gtk.ImageMenuItem(gtk.STOCK_QUIT) self.menuItem.connect("activate", self.quit_cb, self.statusIcon) self.menu.append(self.menuItem) self.statusIcon.connect("popup-menu", self.popup_menu_cb, self.menu) self.statusIcon.set_visible(1) self.notifier = Notifier() gobject.timeout_add(6000, self.poll) gtk.main() def getUrls(self): fileHandle = open("config.txt") return fileHandle.readlines() def poll(self): urls = self.getUrls() return self.notifier.poll(urls) def prefs_cb(self, widget, event, data=None): window = gtk.Window(gtk.WINDOW_TOPLEVEL) window.set_border_width(10) button = gtk.Button("Close") button.connect_object("clicked", gtk.Widget.destroy, window) window.add(button) button.show() window.show() def quit_cb(self, widget, data=None): gtk.main_quit() def popup_menu_cb(self, widget, button, time, data=None): if button == 3: if data: data.show_all() data.popup(None, None, gtk.status_icon_position_menu, 3, time, self.statusIcon)