From: Huang Peng Date: Mon, 6 Oct 2008 06:14:21 +0000 (+0800) Subject: Add notifications.py X-Git-Tag: 0.1.1.20081023~31 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6fcaef161510134118d935f0240e4d719ba43a7a;p=platform%2Fupstream%2Fibus.git Add notifications.py --- diff --git a/ibus/Makefile.am b/ibus/Makefile.am index ebfa4944..2ee5fe43 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 f410ac21..a5927af3 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 00000000..17fec3a8 --- /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 +# +# 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)