summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2008-10-06 14:14:21 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2008-10-06 14:14:21 +0800
commit6fcaef161510134118d935f0240e4d719ba43a7a (patch)
tree3380f0a759a36a577c0b45ea34a17c56ab61b9a3
parent6a06d45e1d3956670ca9006ddfa380c176c1146f (diff)
downloadibus-6fcaef161510134118d935f0240e4d719ba43a7a.tar.gz
ibus-6fcaef161510134118d935f0240e4d719ba43a7a.tar.xz
ibus-6fcaef161510134118d935f0240e4d719ba43a7a.zip
Add notifications.py
-rw-r--r--ibus/Makefile.am1
-rw-r--r--ibus/common.py2
-rw-r--r--ibus/notifications.py61
3 files changed, 64 insertions, 0 deletions
diff --git a/ibus/Makefile.am b/ibus/Makefile.am
index ebfa494..2ee5fe4 100644
--- a/ibus/Makefile.am
+++ b/ibus/Makefile.am
@@ -39,6 +39,7 @@ ibus_PYTHON = \
modifier.py \
object.py \
panel.py \
+ notifications.py \
property.py \
utility.py \
config.py \
diff --git a/ibus/common.py b/ibus/common.py
index f410ac2..a5927af 100644
--- a/ibus/common.py
+++ b/ibus/common.py
@@ -28,6 +28,7 @@ __all__ = (
"IBUS_ENGINE_FACTORY_IFACE",
"IBUS_ENGINE_IFACE",
"IBUS_PANEL_IFACE",
+ "IBUS_NOTIFICATIONS_IFACE",
"default_reply_handler",
"default_error_handler",
"DEFAULT_ASYNC_HANDLERS",
@@ -74,6 +75,7 @@ IBUS_CONFIG_IFACE = "org.freedesktop.ibus.Config"
IBUS_ENGINE_FACTORY_IFACE = "org.freedesktop.ibus.EngineFactory"
IBUS_ENGINE_IFACE = "org.freedesktop.ibus.Engine"
IBUS_PANEL_IFACE = "org.freedesktop.ibus.Panel"
+IBUS_NOTIFICATIONS_IFACE = "org.freedesktop.ibus.Notifications"
def default_reply_handler( *args):
pass
diff --git a/ibus/notifications.py b/ibus/notifications.py
new file mode 100644
index 0000000..17fec3a
--- /dev/null
+++ b/ibus/notifications.py
@@ -0,0 +1,61 @@
+# vim:set et sts=4 sw=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2008 Huang Peng <shawn.p.huang@gmail.com>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+# Boston, MA 02111-1307 USA
+
+__all__ = (
+ "NotificationsBase",
+ "IBUS_NOTIFICATIONS_NAME",
+ "IBUS_NOTIFICATIONS_PATH"
+ )
+
+IBUS_NOTIFICATIONS_NAME = "org.freedesktop.ibus.Notifications"
+IBUS_NOTIFICATIONS_PATH = "/org/freedesktop/ibus/Notifications"
+
+import ibus
+from ibus import interface
+
+class NotificationsBase(ibus.Object):
+ def __init__(self, bus):
+ super(NotificationsBase, self).__init__()
+ self.__proxy = NotificationsProxy(self, bus.get_dbusconn())
+
+ def notify(self, replaces_id, app_icon, summary, body, actions, expire_timeout):
+ pass
+
+ def close_notification(self, id):
+ pass
+
+ def notification_closed(self, id, reason):
+ self.__proxy.NotificationClosed(id, reason)
+
+ def action_invoked(self, id, action_key):
+ self.__proxy.ActionInvoked(id, action_key)
+
+class NotificationsProxy(interface.INotifications):
+ def __init__ (self, notify, dbusconn):
+ super(NotificationsProxy, self).__init__(dbusconn, IBUS_NOTIFICATIONS_PATH)
+ self.__dbusconn = dbusconn
+ self.__notify = notify
+
+ def Notify(self, replaces_id, app_icon, summary, body, actions, expire_timeout):
+ return self.__notify.notify(replaces_id, app_icon, summary, body, actions, expire_timout)
+
+ def CloseNotification(self, id):
+ return self.__notify.close_notification(id)