aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/empathy-notify-manager.c44
-rw-r--r--libempathy-gtk/empathy-notify-manager.h14
2 files changed, 58 insertions, 0 deletions
diff --git a/libempathy-gtk/empathy-notify-manager.c b/libempathy-gtk/empathy-notify-manager.c
index 0bb6b8561..44f77937f 100644
--- a/libempathy-gtk/empathy-notify-manager.c
+++ b/libempathy-gtk/empathy-notify-manager.c
@@ -25,6 +25,9 @@
#include <libempathy/empathy-utils.h>
+#include <libempathy-gtk/empathy-ui-utils.h>
+#include <libempathy-gtk/empathy-conf.h>
+
#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
#include <libempathy/empathy-debug.h>
@@ -141,3 +144,44 @@ empathy_notify_manager_has_capability (EmpathyNotifyManager *self,
return g_hash_table_lookup (priv->capabilities, capa) != NULL;
}
+
+GdkPixbuf *
+empathy_misc_get_pixbuf_for_notification (EmpathyContact *contact,
+ const char *icon_name)
+{
+ GdkPixbuf *pixbuf = NULL;
+
+ if (contact != NULL)
+ pixbuf = empathy_pixbuf_avatar_from_contact_scaled (contact, 48, 48);
+
+ if (pixbuf == NULL)
+ pixbuf = empathy_pixbuf_from_icon_name_sized (icon_name, 48);
+
+ return pixbuf;
+}
+
+gboolean
+empathy_notification_is_enabled (void)
+{
+ EmpathyConf *conf;
+ gboolean res;
+
+ conf = empathy_conf_get ();
+ res = FALSE;
+
+ empathy_conf_get_bool (conf, EMPATHY_PREFS_NOTIFICATIONS_ENABLED, &res);
+
+ if (!res)
+ return FALSE;
+
+ if (!empathy_check_available_state ())
+ {
+ empathy_conf_get_bool (conf, EMPATHY_PREFS_NOTIFICATIONS_DISABLED_AWAY,
+ &res);
+
+ if (res)
+ return FALSE;
+ }
+
+ return TRUE;
+}
diff --git a/libempathy-gtk/empathy-notify-manager.h b/libempathy-gtk/empathy-notify-manager.h
index 951bd4d98..d56e50852 100644
--- a/libempathy-gtk/empathy-notify-manager.h
+++ b/libempathy-gtk/empathy-notify-manager.h
@@ -51,6 +51,15 @@ G_BEGIN_DECLS
#define EMPATHY_IS_NOTIFY_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EMPATHY_TYPE_NOTIFY_MANAGER))
#define EMPATHY_NOTIFY_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_NOTIFY_MANAGER, EmpathyNotifyManagerClass))
+/* FIXME: this should *really* belong to libnotify. */
+typedef enum {
+ EMPATHY_NOTIFICATION_CLOSED_INVALID = 0,
+ EMPATHY_NOTIFICATION_CLOSED_EXPIRED = 1,
+ EMPATHY_NOTIFICATION_CLOSED_DISMISSED = 2,
+ EMPATHY_NOTIFICATION_CLOSED_PROGRAMMATICALY = 3,
+ EMPATHY_NOTIFICATION_CLOSED_RESERVED = 4
+} EmpathyNotificationClosedReason;
+
typedef struct _EmpathyNotifyManager EmpathyNotifyManager;
typedef struct _EmpathyNotifyManagerClass EmpathyNotifyManagerClass;
@@ -73,6 +82,11 @@ EmpathyNotifyManager * empathy_notify_manager_dup_singleton (void);
gboolean empathy_notify_manager_has_capability (EmpathyNotifyManager *self,
const gchar *capa);
+gboolean empathy_notification_is_enabled (void);
+GdkPixbuf * empathy_misc_get_pixbuf_for_notification (EmpathyContact *contact,
+ const char *icon_name);
+
+
G_END_DECLS
#endif /* __EMPATHY_NOTIFY_MANAGER_H__ */