30
30
static guint s_iSubSignals[NB_SIGNALS] = { 0 };
33
static void g_cclosure_marshal_VOID__INT_STRING (GClosure *closure,
36
const GValue *param_values,
37
gpointer invocation_hint,
38
gpointer marshal_data)
40
g_print ("%s ()\n", __func__);
42
static void g_cclosure_marshal_VOID__BOOLEAN_STRING (GClosure *closure,
45
const GValue *param_values,
46
gpointer invocation_hint,
47
gpointer marshal_data)
49
g_print ("%s ()\n", __func__);
51
static void g_cclosure_marshal_VOID__STRING_STRING (GClosure *closure,
54
const GValue *param_values,
55
gpointer invocation_hint,
56
gpointer marshal_data)
58
g_print ("%s ()\n", __func__);
61
static void g_cclosure_marshal_VOID__VALUE (GClosure *closure,
64
const GValue *param_values,
65
gpointer invocation_hint,
66
gpointer marshal_data)
68
g_print ("%s ()\n", __func__);
70
static void g_cclosure_marshal_VOID__VALUE_STRING (GClosure *closure,
73
const GValue *param_values,
74
gpointer invocation_hint,
75
gpointer marshal_data)
77
g_print ("%s ()\n", __func__);
80
33
void cd_dbus_applet_init_signals_once (dbusAppletClass *klass)
82
35
static gboolean bFirst = TRUE;
151
106
G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
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,
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,
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,
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",
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
227
202
// on definit les signaux dont on aura besoin.
334
309
if (! CAIRO_DOCK_IS_MANUAL_APPLET (pAppletIcon))
335
310
return CAIRO_DOCK_LET_PASS_NOTIFICATION;
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);
341
316
if (pClickedIcon == pAppletIcon)
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);
346
321
else if (pDbusApplet->pSubApplet != NULL)
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);
351
326
return CAIRO_DOCK_INTERCEPT_NOTIFICATION;
596
static inline void _emit_answer_dialog (dbusApplet *pDbusApplet, CairoDialog *pDialog, int iClickedButton, GValue *v)
598
Icon *pClickedIcon = pDialog->pIcon;
599
Icon *pAppletIcon = pDbusApplet->pModuleInstance->pIcon;
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);
606
pDbusApplet->pDialog = NULL;
608
void cd_dbus_applet_emit_on_answer_buttons (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
610
GValue v = G_VALUE_INIT;
611
g_value_init (&v, G_TYPE_INT);
612
g_value_set_int (&v, iClickedButton);
614
_emit_answer_dialog (pDbusApplet, pDialog, iClickedButton, &v);
617
void cd_dbus_applet_emit_on_answer_text_entry (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
619
GValue v = G_VALUE_INIT;
620
g_value_init (&v, G_TYPE_STRING);
623
if (GTK_IS_ENTRY (pInteractiveWidget))
625
pEntry = pInteractiveWidget;
629
GList *children = gtk_container_get_children (GTK_CONTAINER (pInteractiveWidget));
630
g_return_if_fail (children != NULL);
631
pEntry = children->data;
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);
640
void cd_dbus_applet_emit_on_answer_text_view (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
642
GValue v = G_VALUE_INIT;
643
g_value_init (&v, G_TYPE_STRING);
646
if (GTK_IS_ENTRY (pInteractiveWidget))
648
pEntry = pInteractiveWidget;
652
GList *children = gtk_container_get_children (GTK_CONTAINER (pInteractiveWidget));
653
g_return_if_fail (children != NULL);
654
pEntry = children->data;
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,
665
g_value_set_string (&v, cText);
667
_emit_answer_dialog (pDbusApplet, pDialog, iClickedButton, &v);
670
void cd_dbus_applet_emit_on_answer_scale (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
672
GValue v = G_VALUE_INIT;
673
g_value_init (&v, G_TYPE_DOUBLE);
676
if (GTK_IS_RANGE (pInteractiveWidget))
678
pScale = pInteractiveWidget;
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;
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);
692
void cd_dbus_applet_emit_on_answer_combo_entry (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
694
GValue v = G_VALUE_INIT;
695
g_value_init (&v, G_TYPE_STRING);
697
GtkWidget *pEntry = gtk_bin_get_child (GTK_BIN (pInteractiveWidget));
698
const gchar *cText = gtk_entry_get_text (GTK_ENTRY (pEntry));
700
g_value_set_string (&v, cText);
701
_emit_answer_dialog (pDbusApplet, pDialog, iClickedButton, &v);
704
void cd_dbus_applet_emit_on_answer_combo (int iClickedButton, GtkWidget *pInteractiveWidget, dbusApplet *pDbusApplet, CairoDialog *pDialog)
706
GValue v = G_VALUE_INIT;
707
g_value_init (&v, G_TYPE_INT);
709
int iSelectedItem = gtk_combo_box_get_active (GTK_COMBO_BOX (pInteractiveWidget));
711
g_value_set_int (&v, iSelectedItem);
712
_emit_answer_dialog (pDbusApplet, pDialog, iClickedButton, &v);
715
void cd_dbus_applet_emit_on_shortkey (const gchar *cShortkey, dbusApplet *pDbusApplet)
717
g_signal_emit (pDbusApplet, s_iSignals[SHORTKEY], 0, cShortkey);
614
721
void cd_dbus_action_on_init_module (CairoDockModuleInstance *pModuleInstance)
616
723
CairoDockVisitCard *pVisitCard = pModuleInstance->pModule->pVisitCard;
738
839
if (pIcon && pIcon->pDataRenderer != NULL)
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);
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);
849
cairo_t *pDrawContext = cairo_create (pIcon->pIconBuffer);
749
850
cairo_dock_refresh_data_renderer (pIcon, pModuleInstance->pContainer, pDrawContext);
750
851
cairo_destroy (pDrawContext);