]> git.0d.be Git - empathy.git/blob - src/empathy-misc.c
Merge branch 'irc-dialog-579800'
[empathy.git] / src / empathy-misc.c
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * Copyright (C) 2009 Collabora Ltd.
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License as
7  * published by the Free Software Foundation; either version 2 of the
8  * License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public
16  * License along with this program; if not, write to the
17  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18  * Boston, MA 02111-1307, USA.
19  * 
20  * Author: Cosimo Cecchi <cosimo.cecchi@collabora.co.uk>
21  *
22  */
23
24 #include "empathy-misc.h"
25
26 #include <libempathy/empathy-utils.h>
27 #include <libempathy-gtk/empathy-ui-utils.h>
28 #include <libempathy-gtk/empathy-conf.h>
29
30 /* public methods */
31
32 GdkPixbuf *
33 empathy_misc_get_pixbuf_for_notification (EmpathyContact *contact,
34                                           const char *icon_name)
35 {
36         GdkPixbuf *pixbuf = NULL;
37
38         if (contact != NULL) {
39                 pixbuf = empathy_pixbuf_avatar_from_contact_scaled (contact,
40                                                                     48, 48);
41         }
42
43         if (!pixbuf) {
44                 pixbuf = empathy_pixbuf_from_icon_name_sized
45                                         (icon_name, 48);
46         }
47
48         return pixbuf;
49 }
50
51 gboolean
52 empathy_notification_is_enabled (void)
53 {
54         EmpathyConf *conf;
55         gboolean res;
56
57         conf = empathy_conf_get ();
58         res = FALSE;
59
60         empathy_conf_get_bool (conf, EMPATHY_PREFS_NOTIFICATIONS_ENABLED, &res);
61
62         if (!res) {
63                 return FALSE;
64         }
65
66         if (!empathy_check_available_state ()) {
67                 empathy_conf_get_bool (conf,
68                                        EMPATHY_PREFS_NOTIFICATIONS_DISABLED_AWAY,
69                                        &res);
70                 if (res) {
71                         return FALSE;
72                 }
73         }
74
75         return TRUE;
76 }
77