aboutsummaryrefslogtreecommitdiff
path: root/examples/simple.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/simple.py')
-rw-r--r--examples/simple.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/examples/simple.py b/examples/simple.py
new file mode 100644
index 0000000..bc2d37c
--- /dev/null
+++ b/examples/simple.py
@@ -0,0 +1,42 @@
+# creates this menu:
+#
+# Menu Item
+# ----------------
+# One
+# Two
+# Three
+# ----------------
+# Submenu > | One
+# | Two
+# | Three
+
+from gi.repository import GLib, Gio
+
+def action_activated (action, parameter):
+ print action.get_name ()
+
+actions = Gio.SimpleActionGroup ()
+for i in ['one', 'two', 'three']:
+ action = Gio.SimpleAction.new (i, None)
+ action.connect ('activate', action_activated)
+ actions.insert (action)
+
+numbers = Gio.Menu ()
+numbers.append ('One', 'one')
+numbers.append ('Two', 'two')
+numbers.append ('Three', 'three')
+
+menu = Gio.Menu ()
+menu.append ('Menu item', 'one')
+menu.append_section ('Numbers', numbers)
+menu.append_submenu ('Submenu', numbers)
+
+# export the menu and action group on d-bus
+bus = Gio.bus_get_sync (Gio.BusType.SESSION, None)
+bus.export_menu_model ('/menu', menu)
+bus.export_action_group ('/menu', actions)
+print bus.get_unique_name ()
+
+loop = GLib.MainLoop ()
+loop.run ()
+