Updated jackctl_trayicon to take advantage of nedko's jackctl common class

git-svn-id: svn+ssh://svn.marcochapeau.org/laditools/trunk@21 bfe161da-02ef-4cea-8c43-ae261ea21ac6
This commit is contained in:
marco 2007-12-19 18:12:29 +00:00
parent f21543d682
commit d99f80bd8e
1 changed files with 28 additions and 50 deletions

View File

@ -24,21 +24,35 @@ pygtk.require('2.0')
import gtk
from gobject import timeout_add
from jack_controller import jack_controller
from jackctl import jackctl
class jackctl_trayicon:
def destroy(self, widget):
gtk.main_quit()
class jackctl_trayicon(jackctl):
def start_callback(self, widget):
self.jack.start()
def stop_callback(self, widget):
self.jack.stop()
def menu_callback(self, widget, event, data=None):
def __init__(self):
jackctl.__init__(self)
self.jack = jack_controller()
# Create the needed pixbufs to manage the status icons look
self.stopped_pixbuf = gtk.gdk.pixbuf_new_from_file("./pixmaps/stopped.svg")
self.started_pixbuf = gtk.gdk.pixbuf_new_from_file("./pixmaps/started.svg")
# Create the status icon itself
self.statusicon = gtk.status_icon_new_from_pixbuf(self.stopped_pixbuf)
# Add the auto update callback
self.auto_updater = timeout_add(1000, self.update_callback)
# Make the menu popup when the icon is right clicked
self.statusicon.connect("popup-menu", self.menu_activate)
def menu_activate(self, widget=None, event=None, data=None):
self.menu.popup(None, None, None, 3, 0)
return True
self.menu.reposition()
def run(self):
gtk.main()
return 0;
def update_callback(self):
if self.jack.is_started():
# Realtime status
@ -58,43 +72,7 @@ class jackctl_trayicon:
self.statusicon.set_from_pixbuf(self.stopped_pixbuf)
return True
def __init__(self):
self.jack = jack_controller()
# Create the needed pixbufs to manage the status icons look
self.stopped_pixbuf = gtk.gdk.pixbuf_new_from_file("./pixmaps/stopped.svg")
self.started_pixbuf = gtk.gdk.pixbuf_new_from_file("./pixmaps/started.svg")
# Create the status icon itself
self.statusicon = gtk.status_icon_new_from_pixbuf(self.stopped_pixbuf)
# Add the auto update callback
self.auto_updater = timeout_add(1000, self.update_callback)
# Create the context menu
self.menu = gtk.Menu()
self.start_item = gtk.MenuItem("_Start JACK")
self.stop_item = gtk.MenuItem("Sto_p JACK")
self.update_item = gtk.MenuItem("_Update icon")
self.quit_item = gtk.MenuItem("_Quit")
self.menu.append(self.start_item)
self.menu.append(self.stop_item)
self.menu.append(self.update_item)
self.menu.append(self.quit_item)
self.start_item.connect("activate", self.start_callback)
self.stop_item.connect("activate", self.stop_callback)
self.update_item.connect("activate", self.update_callback)
self.quit_item.connect("activate", self.destroy)
self.start_item.show()
self.stop_item.show()
self.update_item.show()
self.quit_item.show()
# Make the menu popup when the icon is right clicked
self.statusicon.connect("popup-menu", self.menu_callback)
def run(self):
gtk.main()
return 0;
def get_controller(self):
return self.jack
jackctl_trayicon().run()