Bonjour,
J'ai un problème sur lequel je ne trouve pas la solution. Je fais une interface graphique à partir du logiciel GLADE qui permet de concevoir mon interface graphique et qui m'envoie ses signaux a l'arrivée sur mon fichier C (je travaille sur Visual Studio 6.0). Or si le programme focntioonne, je n'arrive aps a recuperer l'etat de mes boutons radio. je sais qu'il faut appeler par le nom du premier bouton mais bon je suis un peu perdu ..
si quelqu'un a une idée ...


Code C : Sélectionner tout - Visualiser dans une fenêtre à part
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#include <stdlib.h>
#include <gtk/gtk.h>
#include <glade/glade.h>
 
GladeXML  *xml;
GtkWidget *widget;		 //pour fenetre 1
GtkWidget *widget_choix; //pour fenetre 2
GtkWidget *widget_resultat; //pour fenetre3
GtkWidget *conv_butt;
GtkWidget *choixretourmenu_butt; //pour retourner au menu
GtkWidget *crypter;
GtkWidget *decrypter;
 
 
 
int res_Win_Created;
 
void on_Convertir_clicked (GtkButton *, gpointer);
void on_OK_clicked (GtkButton *, gpointer); 
void menu_principal ();
void radiobuttonun ();
 
void on_Convertir_clicked (GtkButton *button, gpointer user_data) ///quand je clique sur convertir fenetre 2?
{
 
	GtkWidget *text_widget;                      
	GtkTextBuffer* text_buffer=0;
	GtkTextIter start;
	GtkTextIter end;
	gchar* buf=0;
	GtkWidget *choixok_butt;
 
	text_widget = glade_xml_get_widget(xml,"entresaisie");
	//On recupere le buffer
	text_buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_widget));
	//On recupere l'origine du buffer
	gtk_text_buffer_get_start_iter(text_buffer,&start);
	//On recupere la fin du buffer
	gtk_text_buffer_get_end_iter(text_buffer,&end);
 
	//On copie le contenu du buffer dans une variable
	buf=gtk_text_buffer_get_text(text_buffer,&start, &end,TRUE);
 
 
	g_print("%s\n",buf);  //buf est chaine de caractere du champ texte de la fenetre 1 (entresaisie)
 
	gtk_widget_hide(widget);
 
	widget_choix = glade_xml_get_widget(xml, "window3");
	gtk_widget_show(widget_choix);
 
	 /* connect signal handlers */
	//glade_xml_signal_autoconnect(xml);
	choixok_butt = glade_xml_get_widget(xml, "OK");
	g_signal_connect(G_OBJECT(choixok_butt), "clicked", G_CALLBACK(on_OK_clicked), NULL); // appel de la fonction on_OK_clicked
}
 
 
 
void on_OK_clicked (GtkButton *button, gpointer user_data) ///quand je clique sur ok dans la 2ieme fenetre : 3 fenetre
{
 
	res_Win_Created = 1;
	widget_resultat = glade_xml_get_widget(xml, "window2");
	gtk_widget_show(widget_resultat);
	gtk_widget_hide(widget_choix);
 
 
		 /* connect signal handlers */
	//glade_xml_signal_autoconnect(xml);
	choixretourmenu_butt = glade_xml_get_widget(xml, "retourmenu");
	//g_signal_connect_swapped(GTK_FILE_SELECTION(file_selection)->ok_button, "clicked", G_CALLBACK(gtk_widget_destroy), file_selection);
	g_signal_connect(G_OBJECT(choixretourmenu_butt), "clicked", G_CALLBACK(menu_principal), NULL); // appel de la fonction menu_principal
 
}
 
 
 
void menu_principal () /// fenetre menu principal
 
{
 
 
 
	if (res_Win_Created == 1)
		gtk_widget_hide(widget_resultat); // on detruit la fenetre 3
/* get a widget (useful if you want to change something) */
    widget = glade_xml_get_widget(xml, "window1");  //on ouvre la fenetre 1
 
    /* connect signal handlers */
    //glade_xml_signal_autoconnect(xml);
	conv_butt = glade_xml_get_widget(xml, "Convertir");
	g_signal_connect(G_OBJECT(conv_butt), "clicked", G_CALLBACK(radiobuttonun), crypter); // appel de la fonction radiobuttonun
 
	gtk_widget_show(widget);
}
 
 
 
 
//////////////
 
 
void radiobuttonun (GtkWidget *pBtn, gpointer data) /// test premier radio button
 
{
 
 
    GSList *pList;
    const gchar *sLabel;
 
    /* Recuperation de la liste des boutons */
    pList = gtk_radio_button_get_group(GTK_RADIO_BUTTON(data));
 
    /* Parcours de la liste */
    while(pList)
    {
        /* Le bouton est il selectionne */
        if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pList->data)))
        {
            /* OUI -> on copie le label du bouton */
            sLabel = gtk_button_get_label(GTK_BUTTON(pList->data));
            /* On met la liste a NULL pour sortir de la boucle */
            pList = NULL;
        }
        else
        {
            /* NON -> on passe au bouton suivant */
            pList = g_slist_next(pList);
        }
    }
	g_print("%s\n",data);
}
 
 
	/////////////////////////////////////////
 
 
 
 
 
 
 
 
 
int main(int argc, char **argv)
{
	res_Win_Created = 0;
    gtk_init(&argc, &argv);
    xml = glade_xml_new("../interfacecryptomain.glade", NULL, NULL);
	menu_principal ();
    gtk_main();
 
    return 0;
}