~ubuntu-branches/ubuntu/quantal/cairo-dock-plug-ins/quantal-201208191523

« back to all changes in this revision

Viewing changes to Dbus/src/interface-applet-signals.c

  • Committer: Bazaar Package Importer
  • Author(s): Matthieu Baerts (matttbe)
  • Date: 2010-08-10 00:05:57 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20100810000557-pfxoz5w7hbyclcqh
Tags: 2.2.0~0beta4-0ubuntu1
* New Upstream Version (LP: #614625)
* Fixed a few bugs on LP:
 - LP: #483963: Dustbin applet does not display trashes on all volumes
 - LP: #485159: Some apps have problem with Systray
 - LP: #500677: ~/.xsession-errors is too much used by CD
 - LP: #500979: Shortcuts: the order gets messed up
 - LP: #521531: Mail: crashes on Maildir
 - LP: #519915: GTG: create a new applet to control GTG
 - LP: #526138: GMenu doesn't handle desktop file exec strings properly
 - LP: #531317: CMake: Added an error if the prefix of 'cairo-dock-plugins'
                 is not the same 'cairo-dock-core'
 - LP: #531319: CMake: check the version of 'cairo-dock' when building
                 'cairo-dock-plugins'
 - LP: #537115: Click at the position where icon lavel was, the icon
                 and dock still receive the event
 - LP: #537943: Terminal applet shortkey behaviour
 - LP: #538637: Trash applet doesn't create .trashinfo files on XFCE
 - More details on the 'ChangeLog' file
* debian/rules:
 - Autotools has been replaced by CMake
 - cdbs is now used.
* debian/copyright:
 - Updated with the new applets
* debian/control:
 - Autotools has been replaced by CMake
 - Added libcurl4-gnutls-dev, libindicator-dev, libdbusmenu-glib-dev
   libido-0.1-dev, libical-dev, libdbusmenu-gtk-dev as Build-deps
 - Bump Standard-Version to 3.9.1
 - Wget is required for dnd2share applet
 - Added the exact realease for 'cairo-dock-dev' in order to prevent any
    build error if this package is not already available (thx to didrocks)
* debian/cairo-dock-plug-ins*.install:
 - All sonames are now installed into lib32 or lib64 (lib*)

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
static guint s_iSubSignals[NB_SIGNALS] = { 0 };
31
31
 
32
32
 
33
 
static void g_cclosure_marshal_VOID__INT_STRING (GClosure *closure,
34
 
        GValue *return_value,
35
 
        guint n_param_values,
36
 
        const GValue *param_values,
37
 
        gpointer invocation_hint,
38
 
        gpointer marshal_data)
39
 
{
40
 
        g_print ("%s ()\n", __func__);
41
 
}
42
 
static void g_cclosure_marshal_VOID__BOOLEAN_STRING (GClosure *closure,
43
 
        GValue *return_value,
44
 
        guint n_param_values,
45
 
        const GValue *param_values,
46
 
        gpointer invocation_hint,
47
 
        gpointer marshal_data)
48
 
{
49
 
        g_print ("%s ()\n", __func__);
50
 
}
51
 
static void g_cclosure_marshal_VOID__STRING_STRING (GClosure *closure,
52
 
        GValue *return_value,
53
 
        guint n_param_values,
54
 
        const GValue *param_values,
55
 
        gpointer invocation_hint,
56
 
        gpointer marshal_data)
57
 
{
58
 
        g_print ("%s ()\n", __func__);
59
 
}
60
 
 
61
 
static void g_cclosure_marshal_VOID__VALUE (GClosure *closure,
62
 
        GValue *return_value,
63
 
        guint n_param_values,
64
 
        const GValue *param_values,
65
 
        gpointer invocation_hint,
66
 
        gpointer marshal_data)
67
 
{
68
 
        g_print ("%s ()\n", __func__);
69
 
}
70
 
static void g_cclosure_marshal_VOID__VALUE_STRING (GClosure *closure,
71
 
        GValue *return_value,
72
 
        guint n_param_values,
73
 
        const GValue *param_values,
74
 
        gpointer invocation_hint,
75
 
        gpointer marshal_data)
76
 
{
77
 
        g_print ("%s ()\n", __func__);
78
 
}
79
 
 
80
33
void cd_dbus_applet_init_signals_once (dbusAppletClass *klass)
81
34
{
82
35
        static gboolean bFirst = TRUE;
85
38
        bFirst = FALSE;
86
39
        
87
40
        // Enregistrement des marshaller specifique aux signaux.
88
 
        dbus_g_object_register_marshaller(g_cclosure_marshal_VOID__VALUE,
 
41
        dbus_g_object_register_marshaller(cd_dbus_marshal_VOID__VALUE,
89
42
                G_TYPE_NONE, G_TYPE_VALUE, G_TYPE_INVALID);  // answer
 
43
        dbus_g_object_register_marshaller(cd_dbus_marshal_VOID__INT_VALUE,
 
44
                G_TYPE_NONE, G_TYPE_INT, G_TYPE_VALUE, G_TYPE_INVALID);  // answer_dialog
90
45
        
91
46
        // on definit les signaux dont on aura besoin.
92
47
        s_iSignals[CLIC] =
95
50
                        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
96
51
                        0,
97
52
                        NULL, NULL,
98
 
                        g_cclosure_marshal_VOID__INT,
 
53
                        cd_dbus_marshal_VOID__INT,
99
54
                        G_TYPE_NONE, 1, G_TYPE_INT);
100
55
        s_iSignals[MIDDLE_CLIC] =
101
56
                g_signal_new("on_middle_click",
103
58
                        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
104
59
                        0,
105
60
                        NULL, NULL,
106
 
                        g_cclosure_marshal_VOID__VOID,
 
61
                        cd_dbus_marshal_VOID__VOID,
107
62
                        G_TYPE_NONE, 0, G_TYPE_NONE);
108
63
        s_iSignals[SCROLL] =
109
64
                g_signal_new("on_scroll",
111
66
                        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
112
67
                        0,
113
68
                        NULL, NULL,
114
 
                        g_cclosure_marshal_VOID__BOOLEAN,
 
69
                        cd_dbus_marshal_VOID__BOOLEAN,
115
70
                        G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
116
71
        s_iSignals[BUILD_MENU] =
117
72
                g_signal_new("on_build_menu",
119
74
                        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
120
75
                        0,
121
76
                        NULL, NULL,
122
 
                        g_cclosure_marshal_VOID__VOID,
 
77
                        cd_dbus_marshal_VOID__VOID,
123
78
                        G_TYPE_NONE, 0, G_TYPE_NONE);
124
79
        s_iSignals[MENU_SELECT] =
125
80
                g_signal_new("on_menu_select",
127
82
                        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
128
83
                        0,
129
84
                        NULL, NULL,
130
 
                        g_cclosure_marshal_VOID__INT,
 
85
                        cd_dbus_marshal_VOID__INT,
131
86
                        G_TYPE_NONE, 1, G_TYPE_INT);
132
87
        s_iSignals[DROP_DATA] =
133
88
                g_signal_new("on_drop_data",
135
90
                        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
136
91
                        0,
137
92
                        NULL, NULL,
138
 
                        g_cclosure_marshal_VOID__STRING,
 
93
                        cd_dbus_marshal_VOID__STRING,
139
94
                        G_TYPE_NONE, 1, G_TYPE_STRING);
140
95
        s_iSignals[CHANGE_FOCUS] =
141
96
                g_signal_new("on_change_focus",
143
98
                        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
144
99
                        0,
145
100
                        NULL, NULL,
146
 
                        g_cclosure_marshal_VOID__BOOLEAN,
 
101
                        cd_dbus_marshal_VOID__BOOLEAN,
147
102
                        G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
148
103
        s_iSignals[ANSWER] =
149
104
                g_signal_new("on_answer",
151
106
                        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
152
107
                        0,
153
108
                        NULL, NULL,
154
 
                        g_cclosure_marshal_VOID__VALUE,
 
109
                        cd_dbus_marshal_VOID__VALUE,
155
110
                        G_TYPE_NONE, 1, G_TYPE_VALUE);
 
111
        s_iSignals[ANSWER_DIALOG] =
 
112
                g_signal_new("on_answer_dialog",
 
113
                        G_OBJECT_CLASS_TYPE(klass),
 
114
                        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
 
115
                        0,
 
116
                        NULL, NULL,
 
117
                        cd_dbus_marshal_VOID__INT_VALUE,
 
118
                        G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_VALUE);
 
119
        s_iSignals[SHORTKEY] =
 
120
                g_signal_new("on_shortkey",
 
121
                        G_OBJECT_CLASS_TYPE(klass),
 
122
                        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
 
123
                        0,
 
124
                        NULL, NULL,
 
125
                        cd_dbus_marshal_VOID__STRING,
 
126
                        G_TYPE_NONE, 1, G_TYPE_STRING);
156
127
        s_iSignals[INIT_MODULE] =
157
128
                g_signal_new("on_init_module",
158
129
                        G_OBJECT_CLASS_TYPE(klass),
159
130
                        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
160
131
                        0,
161
132
                        NULL, NULL,
162
 
                        g_cclosure_marshal_VOID__VOID,
 
133
                        cd_dbus_marshal_VOID__VOID,
163
134
                        G_TYPE_NONE, 0, G_TYPE_NONE);
164
135
        s_iSignals[STOP_MODULE] =
165
136
                g_signal_new("on_stop_module",
167
138
                        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
168
139
                        0,
169
140
                        NULL, NULL,
170
 
                        g_cclosure_marshal_VOID__VOID,
 
141
                        cd_dbus_marshal_VOID__VOID,
171
142
                        G_TYPE_NONE, 0, G_TYPE_NONE);
172
143
        s_iSignals[RELOAD_MODULE] =
173
144
                g_signal_new("on_reload_module",
175
146
                        G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
176
147
                        0,
177
148
                        NULL, NULL,
178
 
                        g_cclosure_marshal_VOID__BOOLEAN,
 
149
                        cd_dbus_marshal_VOID__BOOLEAN,
179
150
                        G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
180
151
        
181
152
        // Add signals
198
169
                        G_TYPE_BOOLEAN, G_TYPE_INVALID);
199
170
                dbus_g_proxy_add_signal(pProxy, "on_answer",
200
171
                        G_TYPE_VALUE, G_TYPE_INVALID);
 
172
                dbus_g_proxy_add_signal(pProxy, "on_answer_dialog",
 
173
                        G_TYPE_VALUE, G_TYPE_INVALID);
 
174
                dbus_g_proxy_add_signal(pProxy, "on_shortkey",
 
175
                        G_TYPE_VALUE, G_TYPE_INVALID);
201
176
                dbus_g_proxy_add_signal(pProxy, "on_init_module",
202
177
                        G_TYPE_INVALID);
203
178
                dbus_g_proxy_add_signal(pProxy, "on_stop_module",
215
190
        bFirst = FALSE;
216
191
        
217
192
        // Enregistrement des marshaller specifique aux signaux.
218
 
        dbus_g_object_register_marshaller(g_cclosure_marshal_VOID__INT_STRING,
 
193
        dbus_g_object_register_marshaller(cd_dbus_marshal_VOID__INT_STRING,
219
194
                G_TYPE_NONE, G_TYPE_INT, G_TYPE_STRING, G_TYPE_INVALID);  // clic
220
 
        dbus_g_object_register_marshaller(g_cclosure_marshal_VOID__BOOLEAN_STRING,
 
195
        dbus_g_object_register_marshaller(cd_dbus_marshal_VOID__BOOLEAN_STRING,
221
196
                G_TYPE_NONE, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_INVALID);  // scroll
222
 
        dbus_g_object_register_marshaller(g_cclosure_marshal_VOID__STRING_STRING,
 
197
        dbus_g_object_register_marshaller(cd_dbus_marshal_VOID__STRING_STRING,
223
198
                G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);  // drop
224
 
        dbus_g_object_register_marshaller(g_cclosure_marshal_VOID__VALUE_STRING,
 
199
        dbus_g_object_register_marshaller(cd_dbus_marshal_VOID__VALUE_STRING,
225
200
                G_TYPE_NONE, G_TYPE_VALUE, G_TYPE_STRING, G_TYPE_INVALID);  // answer
226
201
        
227
202
        // on definit les signaux dont on aura besoin.
231
206
                                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
232
207
                                0,
233
208
                                NULL, NULL,
234
 
                                g_cclosure_marshal_VOID__INT_STRING,
 
209
                                cd_dbus_marshal_VOID__INT_STRING,
235
210
                                G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_STRING);
236
211
        s_iSubSignals[MIDDLE_CLIC] =
237
212
                g_signal_new("on_middle_click_sub_icon",
239
214
                                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
240
215
                                0,
241
216
                                NULL, NULL,
242
 
                                g_cclosure_marshal_VOID__STRING,
 
217
                                cd_dbus_marshal_VOID__STRING,
243
218
                                G_TYPE_NONE, 1, G_TYPE_STRING);
244
219
        s_iSubSignals[SCROLL] =
245
220
                g_signal_new("on_scroll_sub_icon",
247
222
                                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
248
223
                                0,
249
224
                                NULL, NULL,
250
 
                                g_cclosure_marshal_VOID__BOOLEAN_STRING,
 
225
                                cd_dbus_marshal_VOID__BOOLEAN_STRING,
251
226
                                G_TYPE_NONE, 2, G_TYPE_BOOLEAN, G_TYPE_STRING);
252
227
        s_iSubSignals[BUILD_MENU] =
253
228
                g_signal_new("on_build_menu_sub_icon",
255
230
                                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
256
231
                                0,
257
232
                                NULL, NULL,
258
 
                                g_cclosure_marshal_VOID__STRING,
 
233
                                cd_dbus_marshal_VOID__STRING,
259
234
                                G_TYPE_NONE, 1, G_TYPE_STRING);
260
235
        s_iSubSignals[MENU_SELECT] =
261
236
                g_signal_new("on_menu_select_sub_icon",
263
238
                                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
264
239
                                0,
265
240
                                NULL, NULL,
266
 
                                g_cclosure_marshal_VOID__INT_STRING,
 
241
                                cd_dbus_marshal_VOID__INT_STRING,
267
242
                                G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_STRING);
268
243
        s_iSubSignals[DROP_DATA] =
269
244
                g_signal_new("on_drop_data_sub_icon",
271
246
                                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
272
247
                                0,
273
248
                                NULL, NULL,
274
 
                                g_cclosure_marshal_VOID__STRING_STRING,
 
249
                                cd_dbus_marshal_VOID__STRING_STRING,
275
250
                                G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING);
276
251
        s_iSubSignals[ANSWER] =
277
252
                g_signal_new("on_answer_sub_icon",
279
254
                                G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
280
255
                                0,
281
256
                                NULL, NULL,
282
 
                                g_cclosure_marshal_VOID__VALUE_STRING,
 
257
                                cd_dbus_marshal_VOID__VALUE_STRING,
283
258
                                G_TYPE_NONE, 2, G_TYPE_VALUE, G_TYPE_STRING);
284
259
        
285
260
        // Add signals
334
309
        if (! CAIRO_DOCK_IS_MANUAL_APPLET (pAppletIcon))
335
310
                return CAIRO_DOCK_LET_PASS_NOTIFICATION;
336
311
        
337
 
        g_print ("%s (%s, %d)\n", __func__, pAppletIcon->pModuleInstance->pModule->pVisitCard->cModuleName, iButtonState);
 
312
        //g_print ("%s (%s, %d)\n", __func__, pAppletIcon->pModuleInstance->pModule->pVisitCard->cModuleName, iButtonState);
338
313
        dbusApplet *pDbusApplet = cd_dbus_get_dbus_applet_from_instance (pAppletIcon->pModuleInstance);
339
314
        g_return_val_if_fail (pDbusApplet != NULL, CAIRO_DOCK_LET_PASS_NOTIFICATION);
340
315
        
341
316
        if (pClickedIcon == pAppletIcon)
342
317
        {
343
 
                g_print ("emit clic on main icon\n");
 
318
                //g_print ("emit clic on main icon\n");
344
319
                g_signal_emit (pDbusApplet, s_iSignals[CLIC], 0, iButtonState);
345
320
        }
346
321
        else if (pDbusApplet->pSubApplet != NULL)
347
322
        {
348
 
                g_print ("emit clic on sub icon\n");
 
323
                //g_print ("emit clic on sub icon\n");
349
324
                g_signal_emit (pDbusApplet->pSubApplet, s_iSubSignals[CLIC], 0, iButtonState, pClickedIcon->cCommand);
350
325
        }
351
326
        return CAIRO_DOCK_INTERCEPT_NOTIFICATION;
359
334
        if (! CAIRO_DOCK_IS_MANUAL_APPLET (pAppletIcon))
360
335
                return CAIRO_DOCK_LET_PASS_NOTIFICATION;
361
336
        
362
 
        g_print ("%s (%s)\n", __func__, pAppletIcon->pModuleInstance->pModule->pVisitCard->cModuleName);
 
337
        //g_print ("%s (%s)\n", __func__, pAppletIcon->pModuleInstance->pModule->pVisitCard->cModuleName);
363
338
        dbusApplet *pDbusApplet = cd_dbus_get_dbus_applet_from_instance (pAppletIcon->pModuleInstance);
364
339
        g_return_val_if_fail (pDbusApplet != NULL, CAIRO_DOCK_LET_PASS_NOTIFICATION);
365
340
        
378
353
        if (! CAIRO_DOCK_IS_MANUAL_APPLET (pAppletIcon))
379
354
                return CAIRO_DOCK_LET_PASS_NOTIFICATION;
380
355
        
381
 
        g_print ("%s (%s, %d)\n", __func__, pAppletIcon->pModuleInstance->pModule->pVisitCard->cModuleName, iDirection);
 
356
        //g_print ("%s (%s, %d)\n", __func__, pAppletIcon->pModuleInstance->pModule->pVisitCard->cModuleName, iDirection);
382
357
        dbusApplet *pDbusApplet = cd_dbus_get_dbus_applet_from_instance (pAppletIcon->pModuleInstance);
383
358
        g_return_val_if_fail (pDbusApplet != NULL, CAIRO_DOCK_LET_PASS_NOTIFICATION);
384
359
        
418
393
                G_CALLBACK (_delete_menu),
419
394
                myApplet);
420
395
        
421
 
        g_print ("%s (%s)\n", __func__, pAppletIcon->pModuleInstance->pModule->pVisitCard->cModuleName);
 
396
        //g_print ("%s (%s)\n", __func__, pAppletIcon->pModuleInstance->pModule->pVisitCard->cModuleName);
422
397
        dbusApplet *pDbusApplet = cd_dbus_get_dbus_applet_from_instance (pAppletIcon->pModuleInstance);
423
398
        g_return_val_if_fail (pDbusApplet != NULL, CAIRO_DOCK_LET_PASS_NOTIFICATION);
424
399
        myData.pCurrentMenuDbusApplet = pDbusApplet;
431
406
        return (pClickedIcon == pAppletIcon ? CAIRO_DOCK_LET_PASS_NOTIFICATION : CAIRO_DOCK_INTERCEPT_NOTIFICATION);
432
407
}
433
408
 
434
 
void cd_dbus_emit_on_menu_select (GtkMenuShell *menu, gpointer data)
 
409
void cd_dbus_emit_on_menu_select (GtkMenuItem *pMenuItem, gpointer data)
435
410
{
436
411
        g_return_if_fail (myData.pCurrentMenuIcon != NULL);
 
412
        if (GTK_IS_RADIO_MENU_ITEM (pMenuItem))
 
413
        {
 
414
                if (!gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (pMenuItem)))
 
415
                        return ;
 
416
        }
 
417
        
437
418
        int iNumEntry = GPOINTER_TO_INT (data);
438
419
        gchar *cIconID = myData.pCurrentMenuIcon->cCommand;  // NULL si c'est l'icone principale.
439
420
        if (cIconID == NULL)
449
430
        {
450
431
                //\________________ On telecharge l'archive de l'applet et on l'installe/la met a jour.
451
432
                GError *erreur = NULL;
452
 
                g_print ("dropped a distant applet\n");
 
433
                //g_print ("dropped a distant applet\n");
453
434
                gchar *cServerAdress = g_path_get_dirname (cReceivedData);
454
435
                gchar *cDistantFileName = g_path_get_basename (cReceivedData);
455
 
                gchar *cExtractTo = g_strdup_printf ("%s/third-party", g_cCairoDockDataDir);
 
436
                gchar *cExtractTo = g_strdup_printf ("%s/%s", g_cCairoDockDataDir, CD_DBUS_APPLETS_FOLDER);
456
437
                gchar *cAppletDirPath = cairo_dock_download_file (cServerAdress, "", cDistantFileName, cExtractTo, &erreur);
457
438
                g_free (cServerAdress);
458
439
                g_free (cDistantFileName);
550
531
        }
551
532
        
552
533
        // on emet le signal sur l'icone qui a desormais le focus.
 
534
        //g_print ("DBUS : new active window : %ld\n", *xNewActiveWindow);
553
535
        if (*xNewActiveWindow != 0)
554
536
        {
555
537
                Icon *pNewActiveIcon = cairo_dock_get_icon_with_Xid (*xNewActiveWindow);
583
565
void cd_dbus_applet_emit_on_answer_question (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
584
566
{
585
567
        gboolean bYes = (iClickedButton == 0 || iClickedButton == -1);
586
 
        GValue v = {0,};
 
568
        GValue v = G_VALUE_INIT;
587
569
        g_value_init (&v, G_TYPE_BOOLEAN);
588
570
        g_value_set_boolean (&v, bYes);
589
571
        
593
575
void cd_dbus_applet_emit_on_answer_value (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
594
576
{
595
577
        double fValue = (iClickedButton == 0 || iClickedButton == -1 ? gtk_range_get_value (GTK_RANGE (pInteractiveWidget)) : -1);
596
 
        GValue v = {0,};
 
578
        GValue v = G_VALUE_INIT;
597
579
        g_value_init (&v, G_TYPE_DOUBLE);
598
580
        g_value_set_double (&v, fValue);
599
581
        
603
585
void cd_dbus_applet_emit_on_answer_text (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
604
586
{
605
587
        const gchar *cAnswer = (iClickedButton == 0 || iClickedButton == -1 ? gtk_entry_get_text (GTK_ENTRY (pInteractiveWidget)) : NULL);
606
 
        GValue v = {0,};
 
588
        GValue v = G_VALUE_INIT;
607
589
        g_value_init (&v, G_TYPE_STRING);
608
590
        g_value_set_string (&v, cAnswer);
609
591
        
611
593
}
612
594
 
613
595
 
 
596
static inline void _emit_answer_dialog (dbusApplet *pDbusApplet, CairoDialog *pDialog, int iClickedButton, GValue *v)
 
597
{
 
598
        Icon *pClickedIcon = pDialog->pIcon;
 
599
        Icon *pAppletIcon = pDbusApplet->pModuleInstance->pIcon;
 
600
        
 
601
        if (pClickedIcon == pAppletIcon)
 
602
                g_signal_emit (pDbusApplet, s_iSignals[ANSWER_DIALOG], 0, iClickedButton, v);
 
603
        //else if (pDbusApplet->pSubApplet != NULL)
 
604
        //      g_signal_emit (pDbusApplet->pSubApplet, s_iSubSignals[ANSWER], 0, iClickedButton, v, pClickedIcon->cCommand);
 
605
        
 
606
        pDbusApplet->pDialog = NULL;
 
607
}
 
608
void cd_dbus_applet_emit_on_answer_buttons (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
 
609
{
 
610
        GValue v = G_VALUE_INIT;
 
611
        g_value_init (&v, G_TYPE_INT);
 
612
        g_value_set_int (&v, iClickedButton);
 
613
        
 
614
        _emit_answer_dialog (pDbusApplet, pDialog, iClickedButton, &v);
 
615
}
 
616
 
 
617
void cd_dbus_applet_emit_on_answer_text_entry (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
 
618
{
 
619
        GValue v = G_VALUE_INIT;
 
620
        g_value_init (&v, G_TYPE_STRING);
 
621
        
 
622
        GtkWidget *pEntry;
 
623
        if (GTK_IS_ENTRY (pInteractiveWidget))
 
624
        {
 
625
                pEntry = pInteractiveWidget;
 
626
        }
 
627
        else
 
628
        {
 
629
                GList *children = gtk_container_get_children (GTK_CONTAINER (pInteractiveWidget));
 
630
                g_return_if_fail (children != NULL);
 
631
                pEntry = children->data;
 
632
        }
 
633
        
 
634
        const gchar *cText = gtk_entry_get_text (GTK_ENTRY (pEntry));
 
635
        g_print (" -> %s\n", cText);
 
636
        g_value_set_string (&v, cText);
 
637
        _emit_answer_dialog (pDbusApplet, pDialog, iClickedButton, &v);
 
638
}
 
639
 
 
640
void cd_dbus_applet_emit_on_answer_text_view (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
 
641
{
 
642
        GValue v = G_VALUE_INIT;
 
643
        g_value_init (&v, G_TYPE_STRING);
 
644
        
 
645
        GtkWidget *pEntry;
 
646
        if (GTK_IS_ENTRY (pInteractiveWidget))
 
647
        {
 
648
                pEntry = pInteractiveWidget;
 
649
        }
 
650
        else
 
651
        {
 
652
                GList *children = gtk_container_get_children (GTK_CONTAINER (pInteractiveWidget));
 
653
                g_return_if_fail (children != NULL);
 
654
                pEntry = children->data;
 
655
        }
 
656
        GtkTextBuffer *pBuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (pEntry));
 
657
        GtkTextIter start, end;
 
658
        gtk_text_buffer_get_iter_at_offset (pBuffer, &start, 0);
 
659
        gtk_text_buffer_get_iter_at_offset (pBuffer, &end, -1);
 
660
        gchar *cText = gtk_text_buffer_get_text (pBuffer,
 
661
                &start,
 
662
                &end,
 
663
                FALSE);
 
664
        
 
665
        g_value_set_string (&v, cText);
 
666
        g_free (cText);
 
667
        _emit_answer_dialog (pDbusApplet, pDialog, iClickedButton, &v);
 
668
}
 
669
 
 
670
void cd_dbus_applet_emit_on_answer_scale (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
 
671
{
 
672
        GValue v = G_VALUE_INIT;
 
673
        g_value_init (&v, G_TYPE_DOUBLE);
 
674
        
 
675
        GtkWidget *pScale;
 
676
        if (GTK_IS_RANGE (pInteractiveWidget))
 
677
        {
 
678
                pScale = pInteractiveWidget;
 
679
        }
 
680
        else
 
681
        {
 
682
                GList *children = gtk_container_get_children (GTK_CONTAINER (pInteractiveWidget));
 
683
                g_return_if_fail (children != NULL && children->next != NULL);
 
684
                pScale = children->next->data;
 
685
        }
 
686
        
 
687
        double x = gtk_range_get_value (GTK_RANGE (pScale));
 
688
        g_value_set_double (&v, x);
 
689
        _emit_answer_dialog (pDbusApplet, pDialog, iClickedButton, &v);
 
690
}
 
691
 
 
692
void cd_dbus_applet_emit_on_answer_combo_entry (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
 
693
{
 
694
        GValue v = G_VALUE_INIT;
 
695
        g_value_init (&v, G_TYPE_STRING);
 
696
        
 
697
        GtkWidget *pEntry = gtk_bin_get_child (GTK_BIN (pInteractiveWidget));
 
698
        const gchar *cText = gtk_entry_get_text (GTK_ENTRY (pEntry));
 
699
        
 
700
        g_value_set_string (&v, cText);
 
701
        _emit_answer_dialog (pDbusApplet, pDialog, iClickedButton, &v);
 
702
}
 
703
 
 
704
void cd_dbus_applet_emit_on_answer_combo (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
 
705
{
 
706
        GValue v = G_VALUE_INIT;
 
707
        g_value_init (&v, G_TYPE_INT);
 
708
        
 
709
        int iSelectedItem = gtk_combo_box_get_active (GTK_COMBO_BOX (pInteractiveWidget));
 
710
        
 
711
        g_value_set_int (&v, iSelectedItem);
 
712
        _emit_answer_dialog (pDbusApplet, pDialog, iClickedButton, &v);
 
713
}
 
714
 
 
715
void cd_dbus_applet_emit_on_shortkey (const gchar *cShortkey, dbusApplet *pDbusApplet)
 
716
{
 
717
        g_signal_emit (pDbusApplet, s_iSignals[SHORTKEY], 0, cShortkey);
 
718
}
 
719
 
 
720
 
614
721
void cd_dbus_action_on_init_module (CairoDockModuleInstance *pModuleInstance)
615
722
{
616
723
        CairoDockVisitCard *pVisitCard = pModuleInstance->pModule->pVisitCard;
618
725
        {
619
726
                cairo_dock_set_desklet_renderer_by_name (pModuleInstance->pDesklet,
620
727
                        "Simple",
621
 
                        NULL,
622
 
                        CAIRO_DOCK_LOAD_ICONS_FOR_DESKLET,
623
728
                        (CairoDeskletRendererConfigPtr) NULL);
624
729
        }
625
730
        
638
743
{
639
744
        if (pModuleInstance->pIcon->pSubDock != NULL)
640
745
        {
641
 
                cairo_dock_destroy_dock (pModuleInstance->pIcon->pSubDock, pModuleInstance->pIcon->cName, NULL, NULL);
 
746
                cairo_dock_destroy_dock (pModuleInstance->pIcon->pSubDock, pModuleInstance->pIcon->cName);
642
747
                pModuleInstance->pIcon->pSubDock = NULL;
643
748
        }
644
749
        
663
768
 
664
769
void cd_dbus_emit_on_stop_module (CairoDockModuleInstance *pModuleInstance)
665
770
{
666
 
        g_print ("%s (%s, %d)\n", __func__, pModuleInstance->pModule->pVisitCard->cModuleName, myData.bServiceIsStopping);
 
771
        //g_print ("%s (%s, %d)\n", __func__, pModuleInstance->pModule->pVisitCard->cModuleName, myData.bServiceIsStopping);
667
772
        dbusApplet *pDbusApplet = cd_dbus_get_dbus_applet_from_instance (pModuleInstance);
668
773
        if (pDbusApplet != NULL)
669
774
                g_signal_emit (pDbusApplet,
694
799
 
695
800
gboolean cd_dbus_emit_on_reload_module (CairoDockModuleInstance *pModuleInstance, CairoContainer *pOldContainer, GKeyFile *pKeyFile)
696
801
{
697
 
        g_print ("%s ()\n", __func__);
 
802
        //g_print ("%s ()\n", __func__);
698
803
        CairoDockVisitCard *pVisitCard = pModuleInstance->pModule->pVisitCard;
699
804
        dbusApplet *pDbusApplet = cd_dbus_get_dbus_applet_from_instance (pModuleInstance);
700
805
        g_return_val_if_fail (pDbusApplet != NULL, FALSE);
709
814
                {
710
815
                        cairo_dock_set_desklet_renderer_by_name (pModuleInstance->pDesklet,
711
816
                                "Simple",
712
 
                                NULL,
713
 
                                CAIRO_DOCK_LOAD_ICONS_FOR_DESKLET,
714
817
                                (CairoDeskletRendererConfigPtr) NULL);
715
818
                }
716
819
                else
718
821
                        gpointer data[2] = {GINT_TO_POINTER (TRUE), GINT_TO_POINTER (FALSE)};
719
822
                        cairo_dock_set_desklet_renderer_by_name (pModuleInstance->pDesklet,
720
823
                                "Caroussel",
721
 
                                NULL,
722
 
                                CAIRO_DOCK_LOAD_ICONS_FOR_DESKLET,
723
824
                                (CairoDeskletRendererConfigPtr) data);
724
825
                }
725
826
        }
737
838
        {
738
839
                if (pIcon && pIcon->pDataRenderer != NULL)
739
840
                {
740
 
                        cairo_t *pDrawContext = cairo_create (pIcon->pIconBuffer);
741
 
                        cairo_dock_reload_data_renderer_on_icon (pIcon, pModuleInstance->pContainer, pDrawContext, NULL);
 
841
                        cairo_dock_reload_data_renderer_on_icon (pIcon, pModuleInstance->pContainer, NULL);
742
842
                        
743
843
                        CairoDataRenderer *pRenderer = pIcon->pDataRenderer;
744
844
                        CairoDataToRenderer *pData = cairo_data_renderer_get_data (pRenderer);
745
 
                        g_print ("actuellement %d valeurs dans l'historique\n", pData->iMemorySize);
 
845
                        //g_print ("actuellement %d valeurs dans l'historique\n", pData->iMemorySize);
746
846
                        if (pData->iMemorySize > 2)
747
847
                                cairo_dock_resize_data_renderer_history (pIcon, pIcon->fWidth);
748
848
                        
 
849
                        cairo_t *pDrawContext = cairo_create (pIcon->pIconBuffer);
749
850
                        cairo_dock_refresh_data_renderer (pIcon, pModuleInstance->pContainer, pDrawContext);
750
851
                        cairo_destroy (pDrawContext);
751
852
                }