~jgonzalezdr/cairo-dock-plug-ins/suspend-workaround-applet_3.3

« back to all changes in this revision

Viewing changes to Status-Notifier/src/applet-init.c

  • Committer: Fabrice Rey
  • Date: 2013-05-19 17:26:37 UTC
  • Revision ID: fabounet03@gmail.com-20130519172637-cc4oyb5q3z0jd139
Here is quite a huge commit; it's "just" to update to the new core API

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
 
42
42
//\___________ Here is where you initiate your applet. myConfig is already set at this point, and also myIcon, myContainer, myDock, myDesklet (and myDrawContext if you're in dock mode). The macro CD_APPLET_MY_CONF_FILE and CD_APPLET_MY_KEY_FILE can give you access to the applet's conf-file and its corresponding key-file (also available during reload). If you're in desklet mode, myDrawContext is still NULL, and myIcon's buffers has not been filled, because you may not need them then (idem when reloading).
43
43
CD_APPLET_INIT_BEGIN
44
 
        if (! cairo_dock_reserve_data_slot (myApplet))
 
44
        if (! CD_APPLET_RESERVE_DATA_SLOT ())
45
45
                return;
46
46
        
47
47
        if (myConfig.bCompactMode)
58
58
        CD_APPLET_REGISTER_FOR_CLICK_EVENT;
59
59
        CD_APPLET_REGISTER_FOR_MIDDLE_CLICK_EVENT;
60
60
        // CD_APPLET_REGISTER_FOR_BUILD_MENU_EVENT;
61
 
        /*cairo_dock_register_notification_on_object (&myIconsMgr,
 
61
        /*gldi_object_register_notification (&myIconsMgr,
62
62
                CAIRO_DOCK_ENTER_ICON,
63
 
                (CairoDockNotificationFunc) cd_status_notifier_on_enter_icon,
64
 
                CAIRO_DOCK_RUN_AFTER, myApplet);*/
65
 
        cairo_dock_register_notification_on_object (&myContainersMgr,
 
63
                (GldiNotificationFunc) cd_status_notifier_on_enter_icon,
 
64
                GLDI_RUN_AFTER, myApplet);*/
 
65
        gldi_object_register_notification (&myContainersMgr,
66
66
                NOTIFICATION_BUILD_CONTAINER_MENU,
67
 
                (CairoDockNotificationFunc) cd_status_notifier_on_right_click,
68
 
                CAIRO_DOCK_RUN_FIRST, myApplet);
 
67
                (GldiNotificationFunc) cd_status_notifier_on_right_click,
 
68
                GLDI_RUN_FIRST, myApplet);
69
69
        
70
70
        if (myConfig.bCompactMode)
71
71
        {
72
 
                cairo_dock_register_notification_on_object (myContainer,
 
72
                gldi_object_register_notification (myContainer,
73
73
                        NOTIFICATION_MOUSE_MOVED,
74
 
                        (CairoDockNotificationFunc) on_mouse_moved,
75
 
                        CAIRO_DOCK_RUN_AFTER, myApplet);
 
74
                        (GldiNotificationFunc) on_mouse_moved,
 
75
                        GLDI_RUN_AFTER, myApplet);
76
76
                if (myDesklet)
77
77
                {
78
 
                        cairo_dock_register_notification_on_object (myContainer,
 
78
                        gldi_object_register_notification (myContainer,
79
79
                                NOTIFICATION_RENDER,
80
 
                                (CairoDockNotificationFunc) on_render_desklet,
81
 
                                CAIRO_DOCK_RUN_AFTER, myApplet);
82
 
                        cairo_dock_register_notification_on_object (myContainer,
 
80
                                (GldiNotificationFunc) on_render_desklet,
 
81
                                GLDI_RUN_AFTER, myApplet);
 
82
                        gldi_object_register_notification (myContainer,
83
83
                                NOTIFICATION_UPDATE,
84
 
                                (CairoDockNotificationFunc) on_update_desklet,
85
 
                                CAIRO_DOCK_RUN_AFTER, myApplet);
86
 
                        cairo_dock_register_notification_on_object (myContainer,
 
84
                                (GldiNotificationFunc) on_update_desklet,
 
85
                                GLDI_RUN_AFTER, myApplet);
 
86
                        gldi_object_register_notification (myContainer,
87
87
                                NOTIFICATION_LEAVE_DESKLET,
88
 
                                (CairoDockNotificationFunc) on_leave_desklet,
89
 
                                CAIRO_DOCK_RUN_AFTER, myApplet);
 
88
                                (GldiNotificationFunc) on_leave_desklet,
 
89
                                GLDI_RUN_AFTER, myApplet);
90
90
                }
91
91
        }
92
92
        
103
103
        CD_APPLET_UNREGISTER_FOR_MIDDLE_CLICK_EVENT;
104
104
        CD_APPLET_UNREGISTER_FOR_CLICK_EVENT;
105
105
        // CD_APPLET_UNREGISTER_FOR_BUILD_MENU_EVENT;
106
 
        cairo_dock_remove_notification_func_on_object (&myContainersMgr,
 
106
        gldi_object_remove_notification (&myContainersMgr,
107
107
                NOTIFICATION_BUILD_CONTAINER_MENU,
108
 
                (CairoDockNotificationFunc) cd_status_notifier_on_right_click,
 
108
                (GldiNotificationFunc) cd_status_notifier_on_right_click,
109
109
                myApplet);
110
 
        cairo_dock_remove_notification_func_on_object (myContainer,
 
110
        gldi_object_remove_notification (myContainer,
111
111
                NOTIFICATION_MOUSE_MOVED,
112
 
                (CairoDockNotificationFunc) on_mouse_moved, myApplet);
113
 
        cairo_dock_remove_notification_func_on_object (myContainer,
 
112
                (GldiNotificationFunc) on_mouse_moved, myApplet);
 
113
        gldi_object_remove_notification (myContainer,
114
114
                NOTIFICATION_RENDER,
115
 
                (CairoDockNotificationFunc) on_render_desklet, myApplet);
116
 
        cairo_dock_remove_notification_func_on_object (myContainer,
 
115
                (GldiNotificationFunc) on_render_desklet, myApplet);
 
116
        gldi_object_remove_notification (myContainer,
117
117
                NOTIFICATION_UPDATE,
118
 
                (CairoDockNotificationFunc) on_update_desklet, myApplet);
119
 
        cairo_dock_remove_notification_func_on_object (myContainer,
 
118
                (GldiNotificationFunc) on_update_desklet, myApplet);
 
119
        gldi_object_remove_notification (myContainer,
120
120
                NOTIFICATION_LEAVE_DESKLET,
121
 
                (CairoDockNotificationFunc) on_leave_desklet, myApplet);
 
121
                (GldiNotificationFunc) on_leave_desklet, myApplet);
122
122
        
123
123
        cd_satus_notifier_stop_service ();
124
124
CD_APPLET_STOP_END
132
132
        
133
133
        if (CD_APPLET_MY_CONFIG_CHANGED)
134
134
        {
135
 
                cairo_dock_remove_notification_func_on_object (CD_APPLET_MY_OLD_CONTAINER,
 
135
                gldi_object_remove_notification (CD_APPLET_MY_OLD_CONTAINER,
136
136
                        NOTIFICATION_MOUSE_MOVED,
137
 
                        (CairoDockNotificationFunc) on_mouse_moved, myApplet);
138
 
                cairo_dock_remove_notification_func_on_object (CD_APPLET_MY_OLD_CONTAINER,
 
137
                        (GldiNotificationFunc) on_mouse_moved, myApplet);
 
138
                gldi_object_remove_notification (CD_APPLET_MY_OLD_CONTAINER,
139
139
                        NOTIFICATION_RENDER,
140
 
                        (CairoDockNotificationFunc) on_render_desklet, myApplet);
141
 
                cairo_dock_remove_notification_func_on_object (CD_APPLET_MY_OLD_CONTAINER,
 
140
                        (GldiNotificationFunc) on_render_desklet, myApplet);
 
141
                gldi_object_remove_notification (CD_APPLET_MY_OLD_CONTAINER,
142
142
                        NOTIFICATION_UPDATE,
143
 
                        (CairoDockNotificationFunc) on_update_desklet, myApplet);
144
 
                cairo_dock_remove_notification_func_on_object (CD_APPLET_MY_OLD_CONTAINER,
 
143
                        (GldiNotificationFunc) on_update_desklet, myApplet);
 
144
                gldi_object_remove_notification (CD_APPLET_MY_OLD_CONTAINER,
145
145
                        NOTIFICATION_LEAVE_DESKLET,
146
 
                        (CairoDockNotificationFunc) on_leave_desklet, myApplet);
 
146
                        (GldiNotificationFunc) on_leave_desklet, myApplet);
147
147
                
148
148
                if (myConfig.bCompactMode)
149
149
                {
150
 
                        cairo_dock_register_notification_on_object (myContainer,
 
150
                        gldi_object_register_notification (myContainer,
151
151
                                NOTIFICATION_MOUSE_MOVED,
152
 
                                (CairoDockNotificationFunc) on_mouse_moved,
153
 
                                CAIRO_DOCK_RUN_AFTER, myApplet);
 
152
                                (GldiNotificationFunc) on_mouse_moved,
 
153
                                GLDI_RUN_AFTER, myApplet);
154
154
                        if (myDesklet)
155
155
                        {
156
 
                                cairo_dock_register_notification_on_object (myContainer,
 
156
                                gldi_object_register_notification (myContainer,
157
157
                                        NOTIFICATION_RENDER,
158
 
                                        (CairoDockNotificationFunc) on_render_desklet,
159
 
                                        CAIRO_DOCK_RUN_AFTER, myApplet);
160
 
                                cairo_dock_register_notification_on_object (myContainer,
 
158
                                        (GldiNotificationFunc) on_render_desklet,
 
159
                                        GLDI_RUN_AFTER, myApplet);
 
160
                                gldi_object_register_notification (myContainer,
161
161
                                        NOTIFICATION_UPDATE,
162
 
                                        (CairoDockNotificationFunc) on_update_desklet,
163
 
                                        CAIRO_DOCK_RUN_AFTER, myApplet);
164
 
                                cairo_dock_register_notification_on_object (myContainer,
 
162
                                        (GldiNotificationFunc) on_update_desklet,
 
163
                                        GLDI_RUN_AFTER, myApplet);
 
164
                                gldi_object_register_notification (myContainer,
165
165
                                        NOTIFICATION_LEAVE_DESKLET,
166
 
                                        (CairoDockNotificationFunc) on_leave_desklet,
167
 
                                        CAIRO_DOCK_RUN_AFTER, myApplet);
 
166
                                        (GldiNotificationFunc) on_leave_desklet,
 
167
                                        GLDI_RUN_AFTER, myApplet);
168
168
                        }
169
169
                }
170
170
                
177
177
                        CD_APPLET_DELETE_MY_ICONS_LIST;
178
178
                        if (myDock)  // on ne veut pas d'un sous-dock vide.
179
179
                        {
180
 
                                cairo_dock_destroy_dock (myIcon->pSubDock, myIcon->cName);
 
180
                                gldi_object_unref (GLDI_OBJECT(myIcon->pSubDock));
181
181
                                myIcon->pSubDock = NULL;
182
182
                        }
183
183
                        cd_satus_notifier_reload_compact_mode ();