* Move menu code to common class
* use it for wmjackctl * add reactivate to menu git-svn-id: svn+ssh://svn.marcochapeau.org/laditools/trunk@19 bfe161da-02ef-4cea-8c43-ae261ea21ac6
This commit is contained in:
parent
4d6ca9e97f
commit
4e9cf1d1b4
|
@ -0,0 +1,41 @@
|
|||
# base class for control apps, currently dockapp and tray app
|
||||
|
||||
import pygtk
|
||||
pygtk.require('2.0')
|
||||
import gtk
|
||||
import gobject
|
||||
|
||||
class jackctl:
|
||||
def __init__(self):
|
||||
self.menu = gtk.Menu()
|
||||
self.start_item = gtk.MenuItem("_Start JACK")
|
||||
self.stop_item = gtk.MenuItem("Sto_p JACK")
|
||||
self.reactivate_item = gtk.MenuItem("Reactivate JACK")
|
||||
self.quit_item = gtk.MenuItem("_Quit")
|
||||
self.menu.append(self.start_item)
|
||||
self.menu.append(self.stop_item)
|
||||
self.menu.append(self.reactivate_item)
|
||||
self.menu.append(self.quit_item)
|
||||
self.start_item.connect("activate", self.on_menu_start)
|
||||
self.stop_item.connect("activate", self.on_menu_stop)
|
||||
self.reactivate_item.connect("activate", self.on_menu_reactivate)
|
||||
self.quit_item.connect("activate", self.on_menu_destroy)
|
||||
self.menu.show_all()
|
||||
|
||||
def on_menu_start(self, widget):
|
||||
self.get_controller().start()
|
||||
|
||||
def on_menu_stop(self, widget):
|
||||
self.get_controller().stop()
|
||||
|
||||
def on_menu_reactivate(self, widget):
|
||||
self.get_controller().kill()
|
||||
|
||||
def on_menu_destroy(self, widget):
|
||||
print "on_menu_destroy, parent"
|
||||
gtk.main_quit()
|
||||
|
||||
# will this work for tray app?
|
||||
def menu_activate(self):
|
||||
self.menu.popup(None, None, None, 3, 0)
|
||||
self.menu.reposition()
|
68
wmjackctl
68
wmjackctl
|
@ -4,18 +4,15 @@ import sys
|
|||
import os
|
||||
from wmdocklib import wmoo, pywmhelpers
|
||||
from jack_controller import jack_controller
|
||||
from jackctl import jackctl
|
||||
import time
|
||||
|
||||
try:
|
||||
import pygtk
|
||||
pygtk.require('2.0')
|
||||
import gtk
|
||||
import gobject
|
||||
have_gtk = True
|
||||
except:
|
||||
have_gtk = False
|
||||
import pygtk
|
||||
pygtk.require('2.0')
|
||||
import gtk
|
||||
import gobject
|
||||
|
||||
class wmjackctl(wmoo.Application):
|
||||
class wmjackctl(wmoo.Application, jackctl):
|
||||
def __init__(self):
|
||||
self.jack = None
|
||||
wmoo.Application.__init__(
|
||||
|
@ -24,44 +21,17 @@ class wmjackctl(wmoo.Application):
|
|||
margin = 2,
|
||||
debug = False)
|
||||
|
||||
if have_gtk:
|
||||
self.menu = gtk.Menu()
|
||||
self.start_item = gtk.MenuItem("_Start JACK")
|
||||
self.stop_item = gtk.MenuItem("Sto_p JACK")
|
||||
self.quit_item = gtk.MenuItem("_Quit")
|
||||
self.menu.append(self.start_item)
|
||||
self.menu.append(self.stop_item)
|
||||
self.menu.append(self.quit_item)
|
||||
self.start_item.connect("activate", self.start_callback)
|
||||
self.stop_item.connect("activate", self.stop_callback)
|
||||
self.quit_item.connect("activate", self.destroy)
|
||||
jackctl.__init__(self)
|
||||
|
||||
self.addCallback(self.on_button_release, 'buttonrelease', area=(0,0,64,64))
|
||||
self.addCallback(self.on_button_release, 'buttonrelease', area=(0,0,64,64))
|
||||
|
||||
self.gtkloop = have_gtk
|
||||
def get_controller(self):
|
||||
return self.jack
|
||||
|
||||
def on_button_release(self, event):
|
||||
if event['button'] == 3:
|
||||
self.show_popup_menu()
|
||||
self.menu_activate()
|
||||
|
||||
def show_popup_menu(self):
|
||||
#print "show menu here!"
|
||||
if have_gtk:
|
||||
self.menu.popup(None, None, None, 3, 0)
|
||||
self.menu.reposition()
|
||||
|
||||
def destroy(self, widget):
|
||||
if self.gtkloop:
|
||||
gtk.main_quit()
|
||||
else:
|
||||
self.go = False
|
||||
|
||||
def start_callback(self, widget):
|
||||
self.jack.start()
|
||||
|
||||
def stop_callback(self, widget):
|
||||
self.jack.stop()
|
||||
|
||||
def update(self):
|
||||
lines = ["JACK"]
|
||||
try:
|
||||
|
@ -137,13 +107,11 @@ class wmjackctl(wmoo.Application):
|
|||
def run_sleep(self):
|
||||
self.go = True
|
||||
while self.go:
|
||||
if have_gtk:
|
||||
while gtk.events_pending():
|
||||
gtk.main_iteration()
|
||||
while gtk.events_pending():
|
||||
gtk.main_iteration()
|
||||
self.do_dockapp()
|
||||
if have_gtk:
|
||||
while gtk.events_pending():
|
||||
gtk.main_iteration()
|
||||
while gtk.events_pending():
|
||||
gtk.main_iteration()
|
||||
time.sleep(self._sleep)
|
||||
|
||||
def run_gtk(self):
|
||||
|
@ -152,10 +120,6 @@ class wmjackctl(wmoo.Application):
|
|||
gtk.main()
|
||||
|
||||
def run(self):
|
||||
if self.gtkloop:
|
||||
self.menu.show_all()
|
||||
self.run_gtk()
|
||||
else:
|
||||
self.run_sleep()
|
||||
self.run_gtk()
|
||||
|
||||
wmjackctl().run()
|
||||
|
|
Loading…
Reference in New Issue