aboutsummaryrefslogtreecommitdiffstats
path: root/lvc/widgets/gtk/contextmenu.py
diff options
context:
space:
mode:
authorJesús Eduardo <heckyel@hyperbola.info>2017-09-11 17:47:17 -0500
committerJesús Eduardo <heckyel@hyperbola.info>2017-09-11 17:47:17 -0500
commit14738704ede6dfa6ac79f362a9c1f7f40f470cdc (patch)
tree31c83bdd188ae7b64d7169974d6f066ccfe95367 /lvc/widgets/gtk/contextmenu.py
parenteb1896583afbbb622cadcde1a24e17173f61904f (diff)
downloadlibrevideoconverter-14738704ede6dfa6ac79f362a9c1f7f40f470cdc.tar.lz
librevideoconverter-14738704ede6dfa6ac79f362a9c1f7f40f470cdc.tar.xz
librevideoconverter-14738704ede6dfa6ac79f362a9c1f7f40f470cdc.zip
rename mvc at lvc
Diffstat (limited to 'lvc/widgets/gtk/contextmenu.py')
-rw-r--r--lvc/widgets/gtk/contextmenu.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/lvc/widgets/gtk/contextmenu.py b/lvc/widgets/gtk/contextmenu.py
new file mode 100644
index 0000000..cd5b6ba
--- /dev/null
+++ b/lvc/widgets/gtk/contextmenu.py
@@ -0,0 +1,31 @@
+import gtk
+
+from .base import Widget
+
+class ContextMenu(Widget):
+
+ def __init__(self, options):
+ super(ContextMenu, self).__init__()
+ self.set_widget(gtk.Menu())
+ for i, item_info in enumerate(options):
+ if item_info is None:
+ # separator
+ item = gtk.SeparatorMenuItem()
+ else:
+ label, callback = item_info
+ item = gtk.MenuItem(label)
+ if isinstance(callback, list):
+ submenu = ContextMenu(callback)
+ item.set_submenu(submenu._widget)
+ elif callback is not None:
+ item.connect('activate', self.on_activate, callback, i)
+ else:
+ item.set_sensitive(False)
+ self._widget.append(item)
+ item.show()
+
+ def popup(self):
+ self._widget.popup(None, None, None, 0, 0)
+
+ def on_activate(self, widget, callback, i):
+ callback(self, i)