Merci
Je pense avoir résolu mes warning en changeant tous mes g_signal_emit_by_name (((GtkWidget **)param)[FENETRE],"destroy"); :
Mais... Pourquoi !
Version imprimable
Merci
Je pense avoir résolu mes warning en changeant tous mes g_signal_emit_by_name (((GtkWidget **)param)[FENETRE],"destroy"); :
Mais... Pourquoi !
Comme je n'aime pas laisser une question sans réponse j'avance une possibilité.
Au regard de la documentation il semblerait que tu ais oublié un paramètre. Je m'explique. La documentation dit:Donc Tu transmets bien l'instance et le type de signal mais tu omets le ou les derniers paramètres.Code:
1
2
3
4
5
6
7
8
9
10 void g_signal_emit_by_name (gpointer instance, const gchar *detailed_signal, ...); Emits a signal. Note that g_signal_emit_by_name() resets the return value to the default if no handlers are connected, in contrast to g_signal_emitv(). instance*: the instance the signal is being emitted on. detailed_signal*: a string of the form "signal-name::detail". ...*: parameters to be passed to the signal, followed by a location for the return value. If the return type of the signal is G_TYPE_NONE, the return value location can be omitted.
Donc il me semble qu'il faut ajouter les paramètres à passer au signal. Si le callback attaché à "destroy" ne renvoie rien on peut omettre le dernier.
En admettant que le signal "destroy" ne demande pas de paramètres j'écrirai ceci :Code:g_signal_emit_by_name (((GtkWidget **)param)[FENETRE],"destroy", NULL);
Bien vu Gerald ! Le signal destroy a pour prototype:
Il faut donc passer en arguments:Code:void user_function (GtkObject *object, gpointer user_data)
- l'instance de l'objet auquel connecter le signal
- le nom du signal
- le paramètre correspondant au "gpointer data" de la callback ! C'est celui que troumad a oublié !
- et c'est tout. Puisque le signal renvoie void, pas besoin de transmettre une l'adresse d'une variable où mettre la valeur de retour.
Merci !
Je problème vient donc aussi de mon niveau d'anglais :(