如果您谈论的是libnotify的python包装器
init()只是封装初始化通知库的C函数notify_init()。
有关更多示例,请查看:http://roscidus.com/desktop/node/336
代码源在这里:http://www.galago-project.org/downloads.php
C API:http://www.galago-project.org/docs/api/libnotify/notify_8h.html
以及ubuntu指南:https://wiki.ubuntu.com/NotificationDevelopmentGuidelines#How%20do%20I%20get%20these%20slick%20icons
更新:
以下是源代码中的C孔代码:
/**
* notify_init:
* @app_name: The name of the application initializing libnotify.
*
* Initialized libnotify. This must be called before any other functions.
*
* Returns: %TRUE if successful, or %FALSE on error.
*/
gboolean
notify_init(const char *app_name)
{
GError *error = NULL;
DBusGConnection *bus = NULL;
g_return_val_if_fail(app_name != NULL, FALSE);
g_return_val_if_fail(*app_name != , FALSE);
if (_initted)
return TRUE;
_app_name = g_strdup(app_name);
g_type_init();
bus = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
if (error != NULL)
{
g_message("Unable to get session bus: %s", error->message);
g_error_free(error);
return FALSE;
}
_proxy = dbus_g_proxy_new_for_name(bus,
NOTIFY_DBUS_NAME,
NOTIFY_DBUS_CORE_OBJECT,
NOTIFY_DBUS_CORE_INTERFACE);
dbus_g_connection_unref(bus);
dbus_g_object_register_marshaller(notify_marshal_VOID__UINT_STRING,
G_TYPE_NONE,
G_TYPE_UINT,
G_TYPE_STRING, G_TYPE_INVALID);
dbus_g_proxy_add_signal(_proxy, "NotificationClosed",
G_TYPE_UINT, G_TYPE_INVALID);
dbus_g_proxy_add_signal(_proxy, "ActionInvoked",
G_TYPE_UINT, G_TYPE_STRING,
G_TYPE_INVALID);
_initted = TRUE;
return TRUE;
}
所以基本上它所做的就是初始化D-BUS进行通信,并向其添加一些信号。