Récupération de pointeurs après la fonction g_signal_connect
Bonjour,
et oui, j'ai encore un petit problème ! Je n'arrive pas à récupérer un pointeur qui fait parti d'un tableau de pointeurs après l'avoir passé en paramètre dans une fonction g_signal_connect. Pour être plus clair, voici le tableau que je déclare dans une de mes fonctions :
Code:
1 2 3 4 5 6
|
GtkWidget* entry_musician_fname;
GtkWidget* entry_musician_name;
GtkWidget* entry_musician_style;
...
GtkWidget* pointers[9] = {entry_musician_fname, entry_musician_name, entry_musician_style, entry_album_title, entry_album_producer, entry_album_date, entry_album_owned, entry_continent, entry_country}; |
et voici ma fonction g_signal_connect :
Code:
1 2
|
g_signal_connect(G_OBJECT(button_init), "clicked", G_CALLBACK(search_init), pointers); |
J'essaye de récupérer mes pointeurs avec :
Code:
1 2 3 4
|
static void search_init(GtkWidget *widget, gpointer pointers) {
gtk_editable_delete_selection(((GtkEditable **)pointers)[0]);
} |
Ceci ne marche pas car j'ai le message : Gtk-CRITICAL **: gtk_editable_delete_selection: assertion `GTK_IS_EDITABLE (editable)' failed.
Donc je pense que je me suis trompé dans la façon de récupérer les pointeurs. Est-ce que quelqu'un pourrait me donner un coup de main ? D'autre part, est-ce qu'il serait possible de me dire si cette technique de passage de pointeurs par tableau (qui reste relativement propre) est efficace ou s'il y a mieux (puisque, à ma connaissance, il n'y a pas de fonction de recherche d'un widget parmi un widget de niveau plus élevé).
Merci.