1
/******************************************************************************
3
This file is a part of the cairo-dock program,
4
released under the terms of the GNU General Public License.
6
Written by Fabrice Rey (for any bug report, please mail me to fabounet@users.berlios.de)
8
******************************************************************************/
12
#include "applet-config.h"
13
#include "applet-notifications.h"
14
#include "applet-struct.h"
15
#include "applet-init.h"
17
AppletConfig myConfig;
21
CD_APPLET_DEFINITION ("mail", 1, 5, 0, CAIRO_DOCK_CATEGORY_ACCESSORY)
24
static void _load_surfaces (void) {
25
GString *sImagePath = g_string_new ("");
27
//Chargement de l'image "pas de mail"
28
g_string_printf (sImagePath, "%s/cd_mail_nomail.svg", MY_APPLET_SHARE_DATA_DIR);
29
myData.pNoMailSurface = CD_APPLET_LOAD_SURFACE_FOR_MY_APPLET (sImagePath->str);
31
//Chargement de l'image "il y a un des mails"
32
g_string_printf (sImagePath, "%s/cd_mail_newmail.svg", MY_APPLET_SHARE_DATA_DIR);
33
myData.pHasMailSurface = CD_APPLET_LOAD_SURFACE_FOR_MY_APPLET (sImagePath->str);
35
g_string_free (sImagePath, TRUE);
38
CD_APPLET_INIT_BEGIN (erreur)
39
CD_APPLET_REGISTER_FOR_CLICK_EVENT
40
CD_APPLET_REGISTER_FOR_BUILD_MENU_EVENT
42
//\_______________ On charge en priorite les images utilisateur.
43
myData.pNoMailSurface = NULL;
44
myData.pHasMailSurface = NULL;
48
if (myConfig.cNoMailUserImage != NULL)
50
gchar *cUserImagePath = cairo_dock_generate_file_path (myConfig.cNoMailUserImage);
51
myData.pNoMailSurface = CD_APPLET_LOAD_SURFACE_FOR_MY_APPLET (cUserImagePath)
52
g_free (cUserImagePath);
54
if (myConfig.cHasMailUserImage != NULL)
56
gchar *cUserImagePath = cairo_dock_generate_file_path (myConfig.cHasMailUserImage);
57
myData.pHasMailSurface = CD_APPLET_LOAD_SURFACE_FOR_MY_APPLET (cUserImagePath)
58
g_free (cUserImagePath);
60
if( myData.pNoMailSurface )
62
CD_APPLET_SET_SURFACE_ON_MY_ICON (myData.pNoMailSurface);
65
xfce_mailwatch_signal_connect(myData.mailwatch,
66
XFCE_MAILWATCH_SIGNAL_NEW_MESSAGE_COUNT_CHANGED,
67
mailwatch_new_messages_changed_cb, NULL);
69
xfce_mailwatch_force_update(myData.mailwatch);
75
//\_______________ On se desabonne de nos notifications.
76
CD_APPLET_UNREGISTER_FOR_CLICK_EVENT
77
CD_APPLET_UNREGISTER_FOR_BUILD_MENU_EVENT
80
//\_________________ On libere toutes nos ressources.
81
xfce_mailwatch_destroy(myData.mailwatch);
88
CD_APPLET_RELOAD_BEGIN
89
//\_______________ On recharge les donnees qui ont pu changer.
90
if (CD_APPLET_MY_CONFIG_CHANGED)
92
//\_______________ On charge en priorite les images utilisateur.
93
myData.pNoMailSurface = NULL;
94
myData.pHasMailSurface = NULL;
98
if (myConfig.cNoMailUserImage != NULL)
100
gchar *cUserImagePath = cairo_dock_generate_file_path (myConfig.cNoMailUserImage);
101
myData.pNoMailSurface = CD_APPLET_LOAD_SURFACE_FOR_MY_APPLET (cUserImagePath)
102
g_free (cUserImagePath);
104
if (myConfig.cHasMailUserImage != NULL)
106
gchar *cUserImagePath = cairo_dock_generate_file_path (myConfig.cHasMailUserImage);
107
myData.pHasMailSurface = CD_APPLET_LOAD_SURFACE_FOR_MY_APPLET (cUserImagePath)
108
g_free (cUserImagePath);
110
if( myData.pNoMailSurface )
112
CD_APPLET_SET_SURFACE_ON_MY_ICON (myData.pNoMailSurface)
119
CD_APPLET_REDRAW_MY_ICON