~cairo-dock-team/cairo-dock-plug-ins/experimental

« back to all changes in this revision

Viewing changes to mail/src/applet-init.c

  • Committer: tofe
  • Date: 2008-03-15 10:37:45 UTC
  • Revision ID: svn-v4:620951bb-bb42-0410-82c3-830e739ed170:trunk/plug-ins:644
nouvelle applet mail, basée sur le plugin xfce mailwatch. Pour l'instant, ne gère pas la suppresion de compte mail.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/******************************************************************************
 
2
 
 
3
This file is a part of the cairo-dock program,
 
4
released under the terms of the GNU General Public License.
 
5
 
 
6
Written by Fabrice Rey (for any bug report, please mail me to fabounet@users.berlios.de)
 
7
 
 
8
******************************************************************************/
 
9
 
 
10
#include "stdlib.h"
 
11
 
 
12
#include "applet-config.h"
 
13
#include "applet-notifications.h"
 
14
#include "applet-struct.h"
 
15
#include "applet-init.h"
 
16
 
 
17
AppletConfig myConfig;
 
18
AppletData myData;
 
19
 
 
20
 
 
21
CD_APPLET_DEFINITION ("mail", 1, 5, 0, CAIRO_DOCK_CATEGORY_ACCESSORY)
 
22
 
 
23
 
 
24
static void _load_surfaces (void) {
 
25
        GString *sImagePath = g_string_new ("");
 
26
 
 
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);
 
30
 
 
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);
 
34
 
 
35
        g_string_free (sImagePath, TRUE);
 
36
}
 
37
 
 
38
CD_APPLET_INIT_BEGIN (erreur)
 
39
        CD_APPLET_REGISTER_FOR_CLICK_EVENT
 
40
        CD_APPLET_REGISTER_FOR_BUILD_MENU_EVENT
 
41
 
 
42
        //\_______________ On charge en priorite les images utilisateur.
 
43
    myData.pNoMailSurface = NULL;
 
44
    myData.pHasMailSurface = NULL;
 
45
 
 
46
        _load_surfaces();
 
47
 
 
48
        if (myConfig.cNoMailUserImage != NULL)
 
49
        {
 
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);
 
53
        }
 
54
        if (myConfig.cHasMailUserImage != NULL)
 
55
        {
 
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);
 
59
        }
 
60
    if( myData.pNoMailSurface )
 
61
    {
 
62
        CD_APPLET_SET_SURFACE_ON_MY_ICON (myData.pNoMailSurface);
 
63
    }
 
64
 
 
65
    xfce_mailwatch_signal_connect(myData.mailwatch,
 
66
            XFCE_MAILWATCH_SIGNAL_NEW_MESSAGE_COUNT_CHANGED,
 
67
            mailwatch_new_messages_changed_cb, NULL);
 
68
 
 
69
    xfce_mailwatch_force_update(myData.mailwatch);
 
70
 
 
71
CD_APPLET_INIT_END
 
72
 
 
73
 
 
74
CD_APPLET_STOP_BEGIN
 
75
        //\_______________ On se desabonne de nos notifications.
 
76
        CD_APPLET_UNREGISTER_FOR_CLICK_EVENT
 
77
        CD_APPLET_UNREGISTER_FOR_BUILD_MENU_EVENT
 
78
 
 
79
 
 
80
        //\_________________ On libere toutes nos ressources.
 
81
    xfce_mailwatch_destroy(myData.mailwatch);
 
82
 
 
83
        reset_data ();
 
84
        reset_config ();
 
85
CD_APPLET_STOP_END
 
86
 
 
87
 
 
88
CD_APPLET_RELOAD_BEGIN
 
89
        //\_______________ On recharge les donnees qui ont pu changer.
 
90
        if (CD_APPLET_MY_CONFIG_CHANGED)
 
91
        {
 
92
        //\_______________ On charge en priorite les images utilisateur.
 
93
        myData.pNoMailSurface = NULL;
 
94
        myData.pHasMailSurface = NULL;
 
95
 
 
96
        _load_surfaces();
 
97
 
 
98
        if (myConfig.cNoMailUserImage != NULL)
 
99
        {
 
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);
 
103
        }
 
104
        if (myConfig.cHasMailUserImage != NULL)
 
105
        {
 
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);
 
109
        }
 
110
        if( myData.pNoMailSurface )
 
111
        {
 
112
            CD_APPLET_SET_SURFACE_ON_MY_ICON (myData.pNoMailSurface)
 
113
        }
 
114
        }
 
115
        else
 
116
        {
 
117
 
 
118
        }
 
119
    CD_APPLET_REDRAW_MY_ICON
 
120
 
 
121
CD_APPLET_RELOAD_END