summaryrefslogtreecommitdiffstats
path: root/ibus/connection.py
diff options
context:
space:
mode:
Diffstat (limited to 'ibus/connection.py')
-rw-r--r--ibus/connection.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/ibus/connection.py b/ibus/connection.py
new file mode 100644
index 0000000..f1d2882
--- /dev/null
+++ b/ibus/connection.py
@@ -0,0 +1,32 @@
+import dbus.lowlevel
+import ibus
+import gobject
+
+class Connection (ibus.Object):
+ __gsignals__ = {
+ "dbus-signal" : (
+ gobject.SIGNAL_RUN_FIRST,
+ gobject.TYPE_NONE,
+ (gobject.TYPE_PYOBJECT, )
+ )
+ }
+ def __init__ (self, dbusconn):
+ ibus.Object.__init__ (self)
+ self._dbusconn = dbusconn
+
+ def get_object (self, path):
+ return self._dbusconn.get_object ("no.name", path)
+
+ def emit_dbus_signal (self, name, *args):
+ message = dbus.lowlevel.SignalMessage (ibus.IBUS_PATH, ibus.IBUS_IFACE, name)
+ message.append (*args)
+ self._dbusconn.send_message (message)
+ self._dbusconn.flush ()
+
+ def do_destroy (self):
+ self._dbusconn = None
+
+ def dispatch_dbus_signal (self, message):
+ self.emit ("dbus-signal", message)
+
+gobject.type_register (Connection)