[wiican] [s][bin] Bugfix on tray icon based on gtk.StatusIcon
- From: J. FÃlix OntaÃÃn <felixonta src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [wiican] [s][bin] Bugfix on tray icon based on gtk.StatusIcon
- Date: Mon, 20 Aug 2012 12:06:03 +0000 (UTC)
commit 7f7eebddf370bbd5990f596ddb5cf40e24debe07
Author: J. FÃlix OntaÃÃn <fontanon emergya es>
Date: Mon Aug 20 13:50:42 2012 +0200
[s][bin] Bugfix on tray icon based on gtk.StatusIcon
bin/wiican | 42 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 40 insertions(+), 2 deletions(-)
---
diff --git a/bin/wiican b/bin/wiican
index 2dba701..8967195 100755
--- a/bin/wiican
+++ b/bin/wiican
@@ -59,11 +59,49 @@ def tray_icon_generator():
tray_icon.set_status (appindicator.STATUS_ACTIVE)
except ImportError:
- tray_icon = gtk.StatusIcon()
- tray_icon.set_from_icon_name('wiican')
+ tray_icon = Indicator('wiican', 'wiican')
return tray_icon
+# Partially based on https://github.com/MasslessParticle/pySSHMenu/blob/master/SSHMenu.py
+class Indicator():
+ '''
+ Fallback class for linux installations that do not have python-appindicator
+ installed. Implemented as a Gtk.StatusIcon
+ '''
+
+ STATUS_INACTIVE = 0
+ STATUS_ACTIVE = 1
+
+ def __init__(self, name, icon):
+ self.name = name
+ self.icon = icon
+ self.status = Indicator.STATUS_INACTIVE
+ self.status_icon = gtk.StatusIcon()
+ self.status_icon.set_from_icon_name(self.icon)
+ self.set_label(self.name)
+
+ def set_menu(self, menu):
+ self.menu = menu
+ self.status_icon.connect("activate", self.show_menu)
+
+ def set_icon(self, icon_name):
+ self.status_icon.set_from_icon_name(icon_name)
+
+ def set_label(self, label):
+ self.status_icon.set_title(label)
+ self.status_icon.set_has_tooltip(True)
+ self.status_icon.set_tooltip_text(label)
+
+ def set_status(self, status):
+ if status == Indicator.STATUS_ACTIVE or status == Indicator.STATUS_INACTIVE:
+ self.status = status
+
+ def show_menu(self, sender):
+ if self.menu:
+ self.menu.popup(None, None, gtk.status_icon_position_menu, 1,
+ gtk.get_current_event_time(), self.status_icon)
+
class WiicanIndicator(GConfStore):
defaults = {
'show_manager_on_startup': True
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]