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:
parent
f21543d682
commit
d99f80bd8e
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue