Utilisation d'un gtk_radio_button et gtk_spin_button
Bonjour,
J'aimerais récupérer l'état de plusieurs radio_button.
j'ai une structure :
Code:
1 2 3 4 5 6 7 8 9
|
typedef struct
{
gint etat_radio_aucune;
gint etat_radio_jour;
gint etat_radio_semaine;
gint etat_radio_mois;
gint etat_radio_annee;
}radio; |
Dans mon interface.c, je connecte un des radio button à cette fonction:
Code:
1 2 3 4
|
g_signal_connect (G_OBJECT(radiobutton_aucune), "toggled",
G_CALLBACK (on_radiobutton_aucune_toggled),
NULL); |
Les fonctions G_CALLBACK étant de type de retour void, j'ai donc pensé à créer une autre fonction pour récupérer l'état de mes radio button:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
void on_radiobutton_aucune_toggled(GtkWidget *widget, gpointer user_data)
{
recuperation_etat_radio(widget,user_data);
}
int recuperation_etat_radio(GtkWidget *widget, gpointer user_data)
{
radio pt;
GtkWidget *radio_aucune = lookup_widget(GTK_WIDGET(widget),"radiobutton_aucune");
GtkWidget *radio_jour = lookup_widget(GTK_WIDGET(widget),"radiobutton_jour");
GtkWidget *radio_semaine = lookup_widget(GTK_WIDGET(widget),"radiobutton_semaine");
GtkWidget *radio_mois = lookup_widget(GTK_WIDGET(widget),"radiobutton_mois");
GtkWidget *radio_annee = lookup_widget(GTK_WIDGET(widget),"radiobutton_annee");
gint flag = 0;
pt.etat_radio_aucune = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(radio_aucune) );
pt.etat_radio_jour = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(radio_jour) );
pt.etat_radio_semaine = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(radio_semaine) );
pt.etat_radio_mois = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(radio_mois) );
pt.etat_radio_annee = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(radio_annee) );
if ( pt.etat_radio_aucune == TRUE)
flag = 0; /* aucune */
if ( pt.etat_radio_jour == TRUE)
flag = 1; /* jour */
if ( pt.etat_radio_semaine == TRUE)
flag = 2; /* semaine */
if ( pt.etat_radio_mois == TRUE)
flag = 3; /* mois */
if ( pt.etat_radio_annee == TRUE)
flag = 4; /* annee */
return flag;
} |
Dans une autre procédure, je récupère le flag comme suit:
Code:
1 2
|
gint flag = recuperation_etat_radio(widget,user_data); |
Mais ça passe pas quand j'essaye de modifier des labels en fonction de la valeur de flag. Je récupère aussi la valeur d'un spinbutton, mais ça marche pas
gint freq = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin_freq));