From f08846df16f180804f7188c988e31a08b5e69988 Mon Sep 17 00:00:00 2001 From: bjschuma Date: Sat, 16 Jan 2010 01:13:29 -0500 Subject: [PATCH] Can enable and disable plugins in the gui. --- src/extra/guiGTK/button.py | 4 +- src/extra/guiGTK/list.py | 11 +++++- src/extra/guiGTK/window.py | 80 ++++++++++++++++++++++++++++++++++++-- src/extra/sgtk.py | 53 ++++++++++++------------- 4 files changed, 115 insertions(+), 33 deletions(-) diff --git a/src/extra/guiGTK/button.py b/src/extra/guiGTK/button.py index e6974ac2..8e4b03ac 100644 --- a/src/extra/guiGTK/button.py +++ b/src/extra/guiGTK/button.py @@ -22,9 +22,9 @@ class Button(gtk.Button): if text != None: label = gtk.Label(text) label.set_line_wrap(True) - label.set_size_request(100,100) + #label.set_size_request(100,100) label.show() - box.pack_start(label,True,True,0) + box.pack(label) # Show and add callback function #box.show() self.add(box) diff --git a/src/extra/guiGTK/list.py b/src/extra/guiGTK/list.py index 41c68ca3..5cb55a90 100644 --- a/src/extra/guiGTK/list.py +++ b/src/extra/guiGTK/list.py @@ -30,4 +30,13 @@ class List(gtk.ScrolledWindow): def insert(self,items): - self.list.insert(len(self.list), items) \ No newline at end of file + self.list.insert(len(self.list), items) + + + def remove(self,row): + iter = self.list.get_iter(row) + self.list.remove(iter) + + + def selection(self): + return self.tree.get_selection().get_selected_rows() \ No newline at end of file diff --git a/src/extra/guiGTK/window.py b/src/extra/guiGTK/window.py index 12c2ff27..54120a4a 100644 --- a/src/extra/guiGTK/window.py +++ b/src/extra/guiGTK/window.py @@ -7,26 +7,98 @@ __author__="bjschuma" __date__ ="$Jan 6, 2010 10:07:31 PM$" import gtk +import box +import list +import button +from bt.message import write from manager import manager -#import settings +import settings + + +def empty(text=None,verbose=None): + pass def quit(a,b): + manager.run("enable",["exit"]) manager.run("exit") class Window(gtk.Window): def __init__(self, title, type=gtk.WINDOW_TOPLEVEL, icon=None): gtk.Window.__init__(self,type) + self.show() self.set_title(title) self.qid = self.connect("delete_event",quit) if not (icon == None): self.set_icon_from_file(icon) - self.show() - def quit(self,func): self.disconnect(self.qid) - self.qid = self.connect("delete_event",func) \ No newline at end of file + self.qid = self.connect("delete_event",func) + + + def hide(self,item=None,event=None): + gtk.Window.hide(self) + + + + +class PluginWindow(Window): + def __init__(self): + Window.__init__(self,"Plugin Manager") + self.quit(self.hide) + manager.run("enable", ["lsmod"]) + self.hbox = box.HBox() + self.add(self.hbox) + + settings.set("write",empty) + + self.enabled = list.List(gtk.ListStore(str), ["Enabled"]) + enabledMods = manager.run("lsmod","enabled") + for mod in enabledMods: + self.enabled.insert([mod]) + + self.disabled = list.List(gtk.ListStore(str), ["Disabled"]) + disabledMods = manager.run("lsmod","disabled") + for mod in disabledMods: + self.disabled.insert([mod]) + + settings.pop("write") + + enable = button.Button("button",self.enable,None,"<<<") + disable = button.Button("button", self.disable,None,">>>") + + self.hbox.pack(self.enabled, True, True) + + vbox = box.VBox() + self.hbox.pack(vbox) + vbox.pack(enable,True,True) + vbox.pack(disable,True,True) + + self.hbox.pack(self.disabled, True, True) + + + def getPlugin(self,pluginList): + row = pluginList.selection() + list = row[0] + path = row[1][0] + plugin = list[path][0] + return list,path,plugin + + + def enable(self,button,name): + list, path, plugin = self.getPlugin(self.disabled) + manager.run("enable",[plugin] ) + self.disabled.remove(path) + self.enabled.insert([plugin]) + + + def disable(self,button,name): + list, path, plugin = self.getPlugin(self.enabled) + manager.run("disable",[plugin]) + self.enabled.remove(path) + self.disabled.insert([plugin]) + diff --git a/src/extra/sgtk.py b/src/extra/sgtk.py index 513d821e..3cd2297a 100644 --- a/src/extra/sgtk.py +++ b/src/extra/sgtk.py @@ -27,35 +27,36 @@ def test(button, name): write("Test!") -def hide(item,event): - item.hide() +#def hide(item,event): +# item.hide() def pluginWindow(item): - write("Creating plugin window!",True) - plugins = window.Window("Plugin Manager") - hbox = box.HBox(True) - plugins.add(hbox) - - manager.run("enable","lsmod") - - enabled = list.List(gtk.ListStore(str), ["Enabled"]) - enabledMods = manager.run("lsmod","enabled") - for mod in enabledMods: - enabled.insert([mod]) - - disabled = list.List(gtk.ListStore(str), ["Disabled"]) - disabledMods = manager.run("lsmod","disabled") - for mod in disabledMods: - disabled.insert([mod]) - - enable = button.Button("button",test,None,"<<") - - hbox.pack(enabled, True, True) - hbox.pack(enable) - hbox.pack(disabled, True, True) - - plugins.quit(hide) + plugins = window.PluginWindow() +# write("Creating plugin window!",True) +# plugins = window.Window("Plugin Manager") +# hbox = box.HBox(True) +# plugins.add(hbox) +# +# manager.run("enable","lsmod") +# +# enabled = list.List(gtk.ListStore(str), ["Enabled"]) +# enabledMods = manager.run("lsmod","enabled") +# for mod in enabledMods: +# enabled.insert([mod]) +# +# disabled = list.List(gtk.ListStore(str), ["Disabled"]) +# disabledMods = manager.run("lsmod","disabled") +# for mod in disabledMods: +# disabled.insert([mod]) +# +# enable = button.Button("button",test,None,"<<") +# +# hbox.pack(enabled, True, True) +# hbox.pack(enable) +# hbox.pack(disabled, True, True) +# +# plugins.quit(hide) def loop():